Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Programming started for me as "hey, check out what I can do with BASIC" and turned into "now defend your algorithm using the O(n) notation." There was never any time to play with the things I had learned, to fall in love with them. It became a chore. Something to put up with for a while until you became ... a paid programmer, wherein what you did had enormous consequences, and there was even less time for play.

Programming and its teaching has always felt like a culture of passionate people who refused students the passion of discovering and learning but rather decreed their own rules, learned from their own mistakes. It isn't a particular fault of programmers or educators - this is natural inclination of all of us to deny others the painful experience of learning from mistakes. But it's no fun. It's no fun, damnit, and I want nothing to do with things that are no fun.

I would never have developed the mastery of vim that I have now had someone told me "hey, this is what you need to do. This is how you should do it. Here's a semester long course on how to effectively edit text." Everything I learned, I learned on my own, out of necessity. I now consider myself a proficient user of vim, but that would never have happened without the thousands of sequential js pressed before I discovered text objects out of a hunch that "dang it, this is slow and silly. there has to be a better way."

I want to fall in love with something, and write the stupidest possible code, and then learn why it was stupid, and be embarrassed by its stupidity 6 months down the road.

This is why Perl appealed to me. Because it allows for messy, playful, immediate gratification, tweaking fun. Perhaps I haven't the attention span to be a proper programmer.

I'd be embarrassed to admit this to most of my friends.



I'm designing a mini-configuration-language as I go along while writing a large application.

I am amazed how powerful and useful to my purpose I can make this language. Yet I would be the first to admit this the language has some fundamental flaws that would prevent it from becoming more general purpose.

So I feel like I can appreciate from the outside the effectiveness of languages which are designed to incrementally scratch itches. You can come up with a program with a fiercely loyal user base because if you've managed to roll the proper set of things that "just work". I imagine that this is the secret of both Perl and Matlab.

The only thing is I personally hate both these programs, somewhat irrationally I'll admit.

But I think it show the weakness of "grow like a weed to touch the necessary bases" school of language design. It ultimately fails for those outside the immediate target audience because they have assimilate the entire accretion process to really get the language. For a lot of situations, that feels an impudent, almost obscene demand for someone who likely comes to the language wanting to do something simple.

So I feel like that explains the rise and fall Perl. It rose with the Unix community and the web grew together and fell as more and more people felt need for a coherent general purpose language not tied to all things Unixy.


> I'm designing a mini-configuration-language as I go along while writing a large application.

Why not just use Lua or Javascript?


Essentially I want a system where the configuration files are generally transparently editable by non-programmers. Most of the information is simple configuration information.

Lua, Javascript, VBA and other such languages might be called "configuration languages" but they're really object-automation languages. They allow a user to write standard-imperative-programming macros which address the underlying objects of a given system. They don't provide simple, clean facilities for just assigning default values to objects.

And what I have my configuration doing aside from assign default value is more-or-less filtering into and put, specifying tree-transformation commands for various inputs and output using one big, recursive loop and a bit of if-else logic. Basically, I'm producing a system which can take multiple web API sources and have them look like a single source. I began using XSLT but when I started having to also transform json, having my own transform system looked just as easy as transforming json to XSLT and then further adapting XSLT for my purposes.

I could use json or XML for my underlying data storage format but it is too verbose for easy human readability so instead I use simple ini format with just a bit of syntax added and it works quite well.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: