3 ms·
In my opinion a new programming language nowadays should focus on (in this order): 1. easy interfacing with existing library ecosystem (like e.g. C interfaces)
by p0w3n3d 4y ago
In my opinion a new programming language nowadays should focus on (in this order):
1. easy interfacing with existing library ecosystem (like e.g. C interfaces)
2. nice testing framework
3. good IDE with good context help and refactor plugins
4. syntactic sugars and improvements over other languages
- avg_dev 4y agoOn (3): see https://en.wikipedia.org/wiki/Language_Server_Protocol?wprov=sfti1 https://en.wikipedia.org/wiki/Language_Server_Protocol?wprov... LSP is pretty well supported in editors; it has emacs and vim and vscode support (a lot of other support as well). It makes it possible for any editor that supports LSP to be language aware (supporting the use of code completion, syntax highlighting, warning and error messages, and refactoring tools, per the Wikipedia article). All that is needed is for someone to implement a language server for the language. I used to use Perl a few years ago and even that had some (slightly buggy) LS implementations, which I found very helpful. I haven’t used Crystal but I did use Ruby extensively for some time, and having read this and some other articles about Crystal, I’m guessing (2) is well taken care of because of the aim of matching rspec functionality, and (4) by means of being Ruby-influenced. Not sure about (1).
- avg_dev 4y agoAlso see this comment: https://news.ycombinator.com/item?id=35828603 https://news.ycombinator.com/item?id=35828603 :(
- straight-shoota 4y agoCrystal core developer speaking: I think Crystal shines with these focus points, except 3. which needs some love (but it's on our radar). 1. C bindings are nice and easy 2. The integrated spec framework builds on the syntax of rspec and is quite capable. Of course it's opinionated, and there are alternatives in the ecosystem. 3. There are some IDE plugins with basic features. Context awareness in source code is an intricate problem because it requires a lot of semantic analysis. So it needs a bit more effort to iron out. 4. Crystal feels like a dynamic language, yet it's fully statically typed. Features like type inference and union types make this possible.
- segfaltnh 4y agoI bet it's hard to be motivated to build numbers 2 or 3 when number 4 isn't getting attention. That's why most languages start there, that's the raison d'etre.
- graboid 4y ago1) is so important. There are so many cool and interesting languages out there that are developed by a single person/small teams and which will probably never gain traction because of a missing ecosystem of libraries.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]