7 ms·
Forgive me while I make some gross generalizations: Objective-C -> Swift Python -> Nim Ruby -> Crystal JavaScript -> Elm—or maybe TypeScript? C/C++ -
by dickeytk 7y ago
Forgive me while I make some gross generalizations:
Objective-C -> Swift
Python -> Nim
Ruby -> Crystal
JavaScript -> Elm—or maybe TypeScript?
C/C++ -> Rust
The future looks good.
- oblio 7y agoJava -> Kotlin (or even modern Java) JavaScript -> Typescript C# -> F# (or even modern C#)
- pjmlp 7y agoI would stick with the modern variants from Java, JavaScript and C# until the underlying platforms get rewritten in the guest languages.
- gameswithgo 7y agowhy?
- pjmlp 7y agoGuest languages introduce additional layers to debug, usually lack in tooling vs platform languages, require additional FFI considerations, their communities tend to create their own libraries and build tools to parallel platform libraries and tools, just to be more idiomatic. Also they aren't guaranteed to be around forever. Platform languages stay around while the platform is still relevant. So, Kotlin is Android's Swift. Outside Android I bet that in 5 years it will be as relevant as Scala and clojure are today. TypeScript is a wonderful language from Anders, but tsconfig.json allows to change the semantics in multiple ways and it is relatively hard to track down what changed in every release. F# is only partially supported across all .NET deployment scenarios and VS Tooling. It was even left out of the new WinUI roadmap announced at BUILD 2019, even though .NET Core does support it.
- perryprog 7y agoDon't forget Julia for Python and data science! (Obviously also a huge generalization :))
- kelp 7y agoJava -> Go? Not so much in the language design inspired by sense, but I see a lot of Go being used in places that were previously Java. K8s was originally written in Java. Personally very happy to operate fewer Java services...
- dickeytk 7y agoI've seen more Ruby -> Go and Python -> Go myself. I think Go is just pretty well suited to breaking up large monoliths into microservices which is common across the industry.
- kelp 7y agoYeah, good point. We're doing a fair amount of JavaScript (Node) -> Go.
- pjmlp 7y agoThat is a step backwards. Java 12 -> Go aka Java 1.4
- throwmeaway101 7y agoIt isn't exactly accurate. Rust is more like c++ and Nim is more like python+c+pascal. But yeah "The future looks good."
- agumonkey 7y agoand obviously haskell -> haskell
- galfarragem 7y agoAnd AFAIK: Clojure -> Clojure
- kibwen 7y agoI don't know if I'd compare Nim to Python precisely; aside from the significant whitespace, I'd say Nim's syntax is directly descended from Pascal, and Nim's philosophy appears to hew more towards TIMTOWTDI than TSBOAPOOOWTDI (although I suppose we could debate whether modern Python still adheres all that closely to the latter). As a result it might appeal more to Rubyists.
- dickeytk 7y agoFrom the nim homepage: > It combines successful concepts from mature languages like Python, Ada and Modula.
- kibwen 7y agoSure (and note that Modula is itself a Pascal descendant, from none other than the creator of Pascal), and although it seems true to say that Nim's significant whitespace was inspired by Python, I don't think there's much else that will be familiar to Python users. Other than "indentation-based syntax", the featured bullet points on the homepage don't describe Python features, and having used Nim lightly (a while ago, mind) my impression of it was very unlike Python. However, it's possible that I'm among a minority of people who think that significant whitespace is very nearly the least important feature of Python.
- new4thaccount 7y agoI've used Nim a bit and even read most of Dom's book (Nim in Action) and it felt pretty natural to me as someone who does most of their coding in Python. Sure it has some Modula inspired keywords, but it still feels Pythonic in a way I can't easily describe. Rust on the other hand hurts my brain like Haskell as it is so foreign.
- Thaxll 7y agoPython, Ruby -> Go. Nim and Crystal are pet project compare to other languages, no support, no community, no libraries, Crystal doesn't even supports Windows or threads. They are in pre alpha stage at best.
- dickeytk 7y agohence why I said the word "future"
- Thaxll 7y agoRight now Go ( among others ) is replacing a lot of Python / Ruby, there is no future for Nim / Crystal in that space anytime soon. Crystal will most likely die, same for Nim I don't have hope about language not backed/ created by large companies. https://dev.to/nditada/comment/lnl https://dev.to/nditada/comment/lnl
- svnpenn 7y agoI have to agree on Crystal issue for Windows support has been open for... 6 years https://github.com/crystal-lang/crystal/issues/26 https://github.com/crystal-lang/crystal/issues/26
- guggle 7y agoI'm a bit sick and tired of Google being everywhere and in everything so I'd rather invest my free time in learning a language created by highly motivated individuals than learn Go. > I don't have hope about language not backed/ created by large companies. This does not align very well with history. PHP started as Rasmus Lerdorf toy, That didn't prevent it to grow and support some of the biggest platforms on the web. Python was also a one-man band for a while before it gained traction. The future in uncertain.
- Thaxll 7y agoPHP got traction after Zend was created ( private company ) and Python has the PSF. None of Crystal / Nim have such a structure.
- flohofwoe 7y agoC++ -> Rust ...is correct, but C -> Rust ...is not IMHO. There needs to be a much smaller, simpler, "better C" language than Rust to replace C. Something like zig, or C2, even C99 almost feels like a new language. PS: ...and I forgot the fairly obvious C -> Go :)
- dickeytk 7y agoI'm not familiar with the C-family languages, but given that Go is GC, wouldn't Rust be a better "C 2.0"?
- 292355744930110 7y agoThe creators of C/Unix are the creators of Go.
- kibwen 7y agoC/Unix is generally largely credited to Brian Kernighan, Dennis Ritchie, and Ken Thompson. Although Ken Thompson did contribute to Go, he appears to have retired early in the life of the project (I can't find any contributions of his that don't pre-date Go's 1.0 release in 2011), and credit for Go instead tends to lean toward Rob Pike and Robert Griesemer, the former of whom worked at Bell Labs, but appears to have joined in time to have more of an impact on Plan 9 than on Unix. In particular Go bears very striking resemblance to Pike's two earlier languages, Limbo and Newsqueak.
- vram22 7y ago>In particular Go bears very striking resemblance to Pike's two earlier languages, Limbo and Newsqueak. From the GoPL (The Go Programming Language book, by Donovan and Kernighan), page xii, part of the genealogy is: CSP (Hoare, 1978) -> Squeak (Cardelli & Pike, 1985) -> Newsqueak (Pike, 1989) -> Alef (Winterbottom, 1992) -> Go (Griesemer, Pike and Thompson, 2009).
- eeZah7Ux 7y ago
- PMunch 7y agoDon't forget that Nim can compile down to JavaScript as well :) So you can actually use Nim to create your JS frontend and your C-compiled back-end.
- deleted 7y ago[deleted]
- treeform 7y agoThis is what it is for me: Objective-C -> Nim (can compile to ObjC, calls methods directly without overhead) Python -> Nim (Nim is a super fast python that prevents typos) Ruby -> Nim (Nim is better in every-way) JavaScript -> Nim (compiles to plain JS (if you need talk to legacy JS libs like most people) or WASM (if you just want speed)) C/C++ -> Nim (Can compile to C++, calls methods directly without overhead) Basically...
- TeddyDD 7y agoYeah, Nim has impressive coverage of targets. I dislike almost everything about Nim: the syntax, complexity, weird case insensitivity, documentation, community, package manager...Yet this trait alone makes Nim worth leaning for me.
- jaco8 7y agoHmmm , cannot agree with you here: syntax is great and easy to learn, complexity crockable in a day or two, documentation looks good and actively being worked on , community is very welcoming and knowledgeable, package manager nimble is easy to use. Have you actually tried yet ?
- aredirect 7y agoThere's a huge effort on the documentation part recently, and the community is kind. Any specific pain points?