5 ms·
Perfect. To me it looks like a few new languages are introduced every week and I just cannot understand why. I can understand that a programmer who reaches a c
by lignuist 13y ago
Perfect.
To me it looks like a few new languages are introduced every week and I just cannot understand why. I can understand that a programmer who reaches a certain level wants to build his own language, but do they really think that the world is waiting for yet another programming language?
It is just not getting easier with a new language.
This article is a must read for everyone who considers writing a new language.
If all the arguments do not apply for your language, then the world is probably really waiting for your new language. :)
- derekp7 13y agoI believe that it is good for any programmer to at some point in their development create a simple language and write an interpreter for it. First, you learn parsing, then you learn what actually makes a language tick. Then you learn what goes into the design process, when you realize you've designed yourself into a corner. Then you start reading up on language design, stumble across sites like Lambda-the-Ultimate.org, and find out that there is a lot more than imperative / OO programming. Then you start getting into the Lisp literature, and reach a zen-like state. Then you snap back to reality, and become a slightly better programmer, who is a bit more humble.
- lignuist 13y agoYes, but there is a difference between writing a lisp interpreter, and expecting that the world will use your lisp interpreter for actual projects. :) I would also recommend writing a game to any developer. This includes graphics, UI, performance optimization, maybe graph algorithms and more, but like with languages, the result will in most cases not be able to compete with professional games that are already out there.
- alcari 13y agoRepeat several times to become a much better programmer, but possibly lose the humbleness.
- rfnslyr 13y agoFinal step: Co-exist as one with John Carmack and all other ascended souls.
- argv_empty 13y agoFirst, you learn parsing, then you learn what actually makes a language tick. Then you learn what goes into the design process, when you realize you've designed yourself into a corner. Then you start reading up on language design, stumble across sites like Lambda-the-Ultimate.org, and find out that there is a lot more than imperative / OO programming. Then you start getting into the Lisp literature, and reach a zen-like state. Then you snap back to reality, and become a slightly better programmer, who is a bit more humble. Or (more likely, in my experience) you throw together a parser and then expand into a rudimentary interpreter/compiler and continue along your merry way having essentially reinvented some language you already knew with a few superficial differences.
- munificent 13y ago> I can understand that a programmer who reaches a certain level wants to build his own language, but do they really think that the world is waiting for yet another programming language? Lots of people build model trains. They aren't trying to compete with Amtrak.
- tinco 13y agoI myself am waiting for a new programming language. The right languages can definitely make the world easier. Denying that would be equal to declaring one of the existing languages is optimal/perfect.
- lignuist 13y agoI don't expect that there ever will be a perfect or optimal programming language. There is also no perfect natural language. I would rather say, that the language is just a vehicle and especially beginners identify themselves too much with their preferred language, while more advanced programmer think more in terms of concepts. You can solve most of the problems with any of the existing languages. Every language has its strengths and weaknesses, but I would say this pretty much balances out, the more different problems you try to solve with a language.
- lutusp 13y ago> I don't expect that there ever will be a perfect or optimal programming language. I agree for the present, because of (among other things) the degree to which modern programming languages contain explicit references to particular hardware limitations and problems. The fact that resources are drawn from stack, heap and mechanical storage device, and the existence of rules for choosing which is appropriate, only tells us how primitive modern languages are. Mathematics might stand as a counterexample (of a universal language) if it were easier to use for programming -- but that problem is being addressed, and computer languages become more like mathematics as time passes.
- chrismorgan 13y agoI disagree that mathematics is a universal language. Yes, "everyone" understands that 1 + 1 = 2 (most of the time, anyway), but that's not all there is to mathematics. There are vast numbers of different branches of mathematics, often compatible but also often incompatible (in both notation and semantics). There is a fairly common core of mathematical syntax, but beyond that different branches will use their own syntax. Perhaps that's like Lisps: the same fundamental meta-syntax but significantly different and often incompatible semantics and syntax on top of that.
- protomyth 13y agoI think the world is waiting for a new programming language. It is about that time historically and we are going into a situation where cores have replace GHz. Its not clear what the model will be. I think a lot of the new languages are models for how the language designer is thinking (or not) about these new realities. At the same time, the hop from PC to Post-PC like the hop from Mini to PC, brings new constraints (dammit, where'd all my memory go) and a new environment to the programming (what do you mean the computer moves while my program is running).