5 ms·
I don't think it's about the Pascal syntax. Nobody complains about using Lua, Ruby, Crystal, Elixir. Do...end blocks are perfectly fine syntax wise. Go is a Wir
by melony 5y ago
I don't think it's about the Pascal syntax. Nobody complains about using Lua, Ruby, Crystal, Elixir. Do...end blocks are perfectly fine syntax wise. Go is a Wirth lineage language too. The issue is tooling, languages like VHDL and Ada (to a lesser extent SQL too) have poor developer experiences and they never bothered to improve and add more syntactic sugar like C++ and Java.
- Agingcoder 5y agoNo, the language is constantly evolving (ada95, 2012,2020), and they do add syntax sugar and new features on a regular basis. You can submit language rfcs here: https://github.com/AdaCore/ada-spark-rfcs https://github.com/AdaCore/ada-spark-rfcs For an example of the latest additions : https://blog.adacore.com/ada-202x-support-in-gnat https://blog.adacore.com/ada-202x-support-in-gnat As to the developer experience, I find the tooling to be quite satisfactory (IDE, build system, memory/stack analyzers, provers, etc) , the main pain point being the lack of a decent package manager (there is one now, but there are few packages). Edit: almost all the standard c/c++ tools work out of the box as well (profilers, debuggers, etc), so it's no different from c/c++ on this regard.
- WalterGR 5y agoalmost all the standard c/c++ tools By that do you mean the GNU ones, or…?
- Agingcoder 5y agoGnu, intel vtune, rr, pernosco, etc. Basically anything which works from a binary with dwarf symbols. The compiler is actually gcc.
- MaxBarraclough 5y agoIn the interest of completeness: GNAT is the most well-known Ada compiler and uses GCC as its backend, but there are at least 6 other commercial Ada compilers out there. [0] As far as I know, GNAT is the only one that uses GCC. [0] https://news.ycombinator.com/item?id=27603292 https://news.ycombinator.com/item?id=27603292
- Agingcoder 5y agoYou're right, thanks for the clarification. I tend to see gcc as the only major ada compiler, and afaik, the only one implementing all the latest additions to the language.
- tannhaeuser 5y ago> Go is a Wirth lineage language too. Is this commonly accepted? I thought it came off the better-C camp, plus GC.
- pengaru 5y agohttps://en.wikipedia.org/wiki/Limbo_(programming_language) https://en.wikipedia.org/wiki/Limbo_(programming_language)
- mseepgood 5y agoSee Robert Griesemer's talk on "The Evolution Of Go" https://www.youtube.com/watch?v=0ReKdcpNyQg https://www.youtube.com/watch?v=0ReKdcpNyQg https://go.dev/talks/2015/gophercon-goevolution.slide https://go.dev/talks/2015/gophercon-goevolution.slide > In 1960, language experts from America and Europe teamed up to create Algol 60. > In 1970, the Algol tree split into the C and the Pascal branch. > ~40 years later, the two branches join again in Go. https://go.dev/talks/2015/gophercon-goevolution.slide#29 https://go.dev/talks/2015/gophercon-goevolution.slide#29
- pjmlp 5y agoYes, not only did Robert Griesemer work under Niklaus Wirth assistence doing a PhD on an Oberon variant, the Go method syntax is based on Oberon-2, and unsafe meta-package is pretty much UNSAFE package from Oberon/Modula variants. Then you merge that with Limbo's syntax and channels, and you more or less get Go.
- p_l 5y agoArguably it's more a comeback from Alef, this time with GC faction winning. (C begat a bunch of research languages, those begat Alef, a conflict about whether to add GC led to Alef dying and its features reimplemented as Plan9 libraries with side effect of Limbo, years later Go is built on top of Plan9 C compiler & runtime with syntax sugar for Alef-derived libraries).
- pjmlp 5y ago
- pyjarrett 5y ago> have poor developer experiences and they never bothered to improve and add more syntactic sugar Ada actually did in Ada 2012 and moreso in Ada 202x. - Expression functions, and expression forms of if/else and case statements - more natural "aspect" versions of a lot of pragmas - iterator syntax for containers which can be user-defined - user-defined indexing into containers (Variable_Indexing and Constant_Indexing) - user-defined aggregate initialization (such as for containers, the Yeison library exploits this to provide JSON-like initialization) Overall though, the language syntax is coherently put together with orthogonal elements, despite the various pieces coming together over decades. The language designers have done a superb job ensuring that Ada 2012 felt uniform, and not like a collection of bolted on parts.
- pjmlp 5y agoIronic to put it that way, given that Ada was of the first languages with commercial IDEs available. https://en.wikipedia.org/wiki/Rational_R1000 https://en.wikipedia.org/wiki/Rational_R1000 Now you can complain that none of them exist as free beer, and that GNAT Studio came too late, but that is another matter.