3 ms·
I hope that at some point language design will become a self-contained discipline. It reminds me of back in the early days of the Internet when developers were
by awb 6y ago
I hope that at some point language design will become a self-contained discipline.
It reminds me of back in the early days of the Internet when developers were the only web designers. Most programming languages are designed by the same people implementing them.
The common critique is that language designers might create a syntax incompatible with the limitations of the computer itself, but that’s the same challenge web designers had to learn in designing something that will look great in the constraints of the browser, and not just look good in Photoshop.
- jhardy54 6y agoProgramming language theory is its own branch of computer science, but I'm not sure whether that qualifies as a "self-contained discipline": https://en.wikipedia.org/wiki/Programming_language_theory https://en.wikipedia.org/wiki/Programming_language_theory Or, do you mean that linguists might design programming languages without ever having learned how to program?
- seanmcdirmid 6y agoProgramming language theory is a hugely different field from programming language design. One is a theory (lots of math and proofs), the other is much more similar to being a UX designer (a lot of usability issues to work out where theory doesn’t help). It gets confusing because many PL designers are also PL theorists, but it isn’t true in every case.
- awb 6y ago> Or, do you mean that linguists might design programming languages without ever having learned how to program? Yes
- kazinator 6y agoHuman disciplines are generally organized around something that generates a high volume of repeating work. E.g. we have civil engineering as as discipline because bridges have to be designed (or existing designs have to be adjusted and instantiated to new situations). Such a discipline is practiced everywhere; every populated region in the world has civil engineers cranking out work. We don't need similar discipline which cranks out programming languages. To some measure, we need programming languages in which regular programmers can crank out domain specific notations to suit whatever work they are doing. Engineers themselves use languages for designing and communicating their work. Civil engineers have blueprints with their notations; electrical engineers have schematics, SPICE netlists; and so on. They don't need a sub-discipline to continuously crank out new kinds of these languages, right? Similarly software engineering has languages. It has a lot more of them than electrical or civil engineering, but that's just the consequence of those languages not only being the product of software engineering as well as the production tool. Non-software engineering also produces tools which are used in engineering. We have a myriad of tools for all sorts of situations. Machinists produce tools, which can be used by machinists to produce tools; that's a bit like computing. In computing, there are tools other than languages though. For instance, there are API's and libraries. There is still a lot of work, for instance, in people who integrate platforms: bring up new systems on a chip, and move code to next generation systems. New API's are needed much more than new languages, and so the case can be made that API's are more like tools than languages. Machinists generally don't need a new design language in order to make new tools. A new tool is an adapter between a process (like construction, maintenance) and a new situation; it's like a HAL. A differenty shaped screwdriver or whatever isn't a new language.
- AnimalMuppet 6y ago> electrical engineers have schematics, SPICE netlists; and so on. How much "and so on", though? Schematics. SPICE. VHDL. Verilog. That's all I can think of off the top of my head, but I'm not an electrical engineer. There might be a few more - especially for subspecialties like, say, power engineers. How many languages do software engineers commonly use? Maybe ten. (I will admit that the word "commonly" is doing a lot of work for me...) And you could look at something like TypeScript as being a new API on JavaScript. So I'm not sure that we're that far out of line with something like electrical engineering. We just have a really long tail of languages that relatively few people use. To me, it feels like those "don't count" in a way, but you could regard it as cheating to ignore them. Note well: I am not at all saying that the languages we have are optimal for programming. I'm just saying that as a discipline, we mostly use a very few languages.
- kazinator 6y agoRight, no much "so on and on", and note that those EE languages we mention are actually computing tools. Another consideration I should have mentioned is compensation. Civil engineers get paid for instantiating a new bridge somewhere. There is no money in cranking out programming languages. It takes years of dedication to just make one good one.
- musicale 6y ago> SPICE. VHDL. Verilog. That's all I can think of off the top of my head, but I'm not an electrical engineer There are dozens of hardware description languages. In addition to Verilog and VHDL I've encountered SystemC and Bluespec as well as a number of less popular and academic languages (Lola, Esterel, even JavaScript-based HDLs...) (I've also encountered various lower-level languages, for schematics, netlists, or VLSI layout.) Languages enabling formal specification and verification seem particularly hot at the moment. Matlab/Octave and Scipy/numpy are certainly big in EE for signal processing and other applications. Obviously C-like languages and Python are used in many EE applications, as are GPU languages like CUDA and OpenCL.
- samatman 6y ago