Hacker News new | ask | show | jobs
by unnouinceput 2290 days ago
Does it has cross-platform? One codebase, multiple targets? That's how you evangelize any programming language. In today's environment where the customer wants his solution to work on all devices, the programming language that has the least (zero might be impossible) quirks when targeting different OS'es wins my heart.

So far, IMO, there are zero programming languages that do this. Java comes closest but is like only half-way there, rest are either lagging behind or even don't even approach this. Also I hate Java, but that's my personal choice.

2 comments

> the programming language that has the least (zero might be impossible) quirks when targeting different OS'es wins my heart.

Two languages come to mind (though I think this is an unpopular opinion, I will try anyway):

* Dart (runs really well and cross-platform on desktop, mobile and web) * Haxe (because it can compile to pretty much anything: C++, Java, JS...)

Absolutely. Pharo is much like Java: it's VM-based, so Pharo software will run on any platform that has a Pharo VM. This includes Windows, macOS, and Linux.

And if you use PharoJS, which transpiles to JS, the same software will run in any web browser, and on mobile devices (using Apache Cordova).

Maybe I was not detail oriented in my above comment. You see, there are plenty of programming languages that have multiple targets/cross-platform capabilities but when it comes to serious implementation users want to have same experience everywhere.

For example, dialogs. Choose a file, right? I mean how hard can it be to select a picture and view it on screen. Well, Android is non-blocking while Windows can be modal blocking. So in Windows it's easy to show a file dialog to select a file then your code goes to put it on screen. Well, good luck doing that in Android. There you have to split your code in several routines that chain each other in order to achieve same effect. Which leads to different code either split by files or surrounded by compiler switches. Boom!! Not what I want!! I know how to do that in dozens of so called cross-platform programming languages. What I want is one call "ShowDialog" implemented at programming language level, not 3rd party, not my code splitted by compiler switches, that behaves the same in all targets. That, my friend, is what I meant by zero programming languages doing this currently.