Hacker News new | comments | show | ask | jobs | submit login
An open letter to language designers: Kill your sacred cows. (joshondesign.com)
8 points by Arcticus 2114 days ago | hide | past | web | favorite | 9 comments



I disagree with pretty much all his points, especially the requirement for an IDE.


I disagree with pretty much all his points, especially the requirement for an IDE.

Whew. Glad I'm not the only one. I was starting to think maybe I'd turned into a set-in-his-ways fuddy-duddy. It's all well and good to propose new, even radical ideas, but like everything else, they have to pass (at least) one simple test: will it work? FTFA:

Why, for the love of all things pure and functional, are we still storing our source code as ASCII text files on disk?

Why? Why? Because it works, and it works very well, thank you very much. Maybe some of us are looking beyond next week because we want to be able to open our code in something 10, 20, even 30 years from now. I'll bet this guy hasn't even heard of EBCDIC. ASCII is a blessing. I'll give him that he's talking up XML and JSON, which are (thankfully) still just plain text at their cores, but the whole "IDEs can store metadata in the repo!" thing just seems stupid. If a human can't see and edit it, sooner or later it will become a roadblock. Note that I'm not saying a human should have to see and edit it, just that they can if need be. See the Windows Registry for the ultimate example of metadata in a non-ascii format.

I was tempted to stop reading at point #1, even more so at #2, but some other points are generally good. #6, #7, and #8 are particularly good ideas for new language designers. Extensibility (#6) is what makes languages powerful. Anyone who needs performance (#7 and #8) is already using an established language (such as assembler or C) that doesn't have a GC, so there's no point in writing a language nobody will use.


But...like he says, pretty much everything is an IDE in reality, even a text editor.

I can see arguments for both sides, and I understand why many programmers hate IDEs, but I think that is partially due to the fact that most IDEs suck.

The biggest revelation to me (as far as IDEs go) was when Sublime Text put all its config in a text file. This means it is easy to find/search/replace, rather than drilling through 10 menus looking for what to modify. It is little things like this that could make IDEs better...


This is the binary-vs-plaintext argument all over again. Java's been through this once before, and they settled on .jar files containing bytecode (the author's ASTs, etc.), and human-readable source.

To jinshaun's point: I wouldn't mind requiring an IDE, but it should absolutely not be required to run in a window system. The overwhelming majority of administration is conducted over CLI, and if you've never had to hotfix something on an X-less production server, you're either a deployment rock star or lying to yourself and others.

I lastly want to reiterate that programming languages are "languages" by definition, and their syntax and terminology are what makes them universal. Using "dingbats" to represent functionality inherently breaks down the out-of-band communication of ideas. "Add a left-pointer-finger to pass the value to the caller of the function." WAT?


I lastly want to reiterate that programming languages are "languages" by definition, and their syntax and terminology are what makes them universal. Using "dingbats" to represent functionality inherently breaks down the out-of-band communication of ideas. "Add a left-pointer-finger to pass the value to the caller of the function." WAT?

Yeah, every time someone comes along and says something like "text is so barbaric; we need to use GUIs to do things better!", I'm reminded of a quote along the lines of language being the only thing expressive enough to accomplish a broad range of tasks. Whether it's programming or system administration, there's a reason that technical people still have keyboards. If someone has something better, by all means show it. So far, no one has been able to meet this simple requirement.


I'm not saying you aren't typing symbols into an editor. Programming should still be done with a language. I'm saying: why should what you type be the same thing that is stored on disk. We are a decade into the 21st century and we still edit code the way we did in the 70s. Am I the only one who sees something wrong with that?

Let me ask you this. How will software for the Starship Enterprise be written? If we are still doing it in VIM then there is something seriously wrong with the future. Surely something better will come along. Let's explore what that something is.


It sounds like you're referring to a "structured editor", something like this:

http://www.guilabs.net/


There are two camps of people: pro-IDE and anti-IDE.

The real answer is, it is going to take both, and they have to be very well designed. Most people hate IDEs because they are so cluttered and inefficient, and many people hate advanced text editors because they can be difficult to learn or non-intuitive.

That said, let me give a little tiny side rant about text editors...

We still edit code on the character level. This is retarded (in my view) because really code isn't about characters, it is about tokens. I don't care if the data gets saved as characters, but I do have a problem strictly editing one character at a time.

Problem: layout. Crazy tabbing and spacing should not be necessary to line things up. Rather code should be in something like an excel sheet, with one token per box. LHS and RHS should be aligned vertically, automatically. This would mean you could do some interesting things, like easily multi-select a vertical row of tokens. Perhaps for readability purposes, you could easily toggle between normal text layout and an excel style layout...Maybe I'm nuts but sometimes you have to try crazy things to make progress.


I agree with pretty much all his points, except the one about too much syntax.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: