4 ms·
The lang I want would be mixture of C, C++, Go, Rust, Julia, JavaScript 6, PHP 7, Swift, Lua. * Optional typing (like PHP7/Hack/ES7) * support for compilat
by frik 12y ago
The lang I want would be mixture of C, C++, Go, Rust, Julia, JavaScript 6, PHP 7, Swift, Lua.
* Optional typing (like PHP7/Hack/ES7)
* support for compilation (statically linked native
binaries) and JIT (like Visual Basic 6 with its P-Code)
* memory safety (no null/dangling pointers like Rust)
* procedural & object oriented & functional style
(like JavaScript/PHP/C++)
* modern base standard library / API (like
C/Go/JavaScript/PHP but more modern with better naming,
not as heavy as Java class libraries or .Net Framework)
* third party libraries (like Nodejs NPM)
* online documentation with code samples and
community comments (like PHP.net)
* good debugger
* IDE plugins for IDEA/Eclipse/VS
* good OS support (32 & 64bit) for:
Windows & OSX & Linux & BSD & iOS & Android.
Edit:
* Actor model (like Erlang)
* Built-in concurrency primitives:
° light-weight processes (like Fibers in WinAPI,
Coroutine in Lua, Goroutine in Go),
° Channels (interprocess communication and
synchronization via message passing like in Go
and OCaml)
- izietto 12y agoI would add the Actor model of Erlang.
- ICWiener 12y ago"modern base API", what does that mean?
- frik 12y agoI meant "language standard library" (I updated the text). C/C++/Object-C/PHP have short functions with names like strlen, strstr, etc. Java/C#/JavaScript have .length() and things like System.out.println()/Console.Write(). Ideally, I would like a middle ground. The Java/C# standard library is too verbose and the C standard functions are a bit cryptic. It's great one can use different programming styles in JavaScript/PHP/C++. In PHP many functions are available in procedural and object oriented style, e.g. http://php.net/manual/en/mysqli.query.php http://php.net/manual/en/mysqli.query.php
- ICWiener 12y agoMy own point of view is biased, admittedly, but I couldn't stop thinking that Common Lisp was relevant for each item in your list. Of course, much isn't built-in, but this is not as bad as it sounds: concurrent channels are not part of the language specification, but you can install the "calispel" or "cl-actors" libraries that gives you what looks like primitive constructs. Regarding "modern" languages, I like this quote from the author of pgloader: "I switched from Python to Lisp because I wanted a modern language" (also transcribed as: "[...] in searching for a modern programming language the best candidate I found was actually Common Lisp."; see http://tapoueh.org/blog/2014/05/14-pgloader-got-faster.html http://tapoueh.org/blog/2014/05/14-pgloader-got-faster.html)
- kodablah 12y agoThe language closest to what you have described I believe is Dart, but it does have a VM.
- brudgers 12y agoOther than IDE plugins for other IDE's, I think Racket has most of this covered. I don't however think that's what was desired.
- aikah 12y agoD? Hadn't it boast itself as a C++ replacement(which pissed off the C++ community=bad rap), I think it would have been a very good candidate. D minus all the unsafe features looks better than Go, IMHO. Go lack of expressiveness forces developers into copy/paste mode.
- sethladd 12y agoYou might want to check out Dart (https://www.dartlang.org https://www.dartlang.org) * Optional types * The VM compiles source into machine code on the fly, or you can embed the VM into your app. * No pointers. * Core library is full-featured (https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/home https://api.dartlang.org/apidocs/channels/stable/dartdoc-vie...) * Third-party libs and packages in https://pub.dartlang.org https://pub.dartlang.org * Docs at api.dartlang.org and www.dartdocs.org * Debugger works in Eclipse, IntelliJ, WebStorm * Works in Win, Mac, Linux, 32 and 64 bit. * Also runs on ARM and MIPs * Isolates for memory-safe concurrency * Async primitives like Future, Stream, and async/await (disclaimer: I'm a PM on the Dart team)