I found this article today with a ranking of programming languages. What actually makes a language attractive, which features are coveted?
So when programming you need to realize that the ecosystem brings you to the point and not the language. Having Xojo without bugs is wonderful but it has too many leaks in ecosystem questions. With Java you have a world of ecosystem parts which you do not get with any other language. That makes things possible and code reuses possible you would never could reuse and use at all for any other language. So the question should always be: how can I get the Jobs I need to get done in the best way. For fixed platforms you have also an ecosystem like for Xcode, for Swift, for Android. That you need to figure out and you will have the language which is really attractive and not one you choose while you have no other alternative in front while you think that could go. it has to fit. And fitting means not: oh I could get it done. Fitting means: I can get the Job done and I have the ecosystem behind. Every other decision is out of range while costing time, money and performance.
I think different people have different needs and priorities. I agree with @thorstenstueker because I do line-of-business apps and services and a robust base class library and ecosystem is important to that.
Others will be enamored with, say, functional programming and want to explore a “pure” FP language like Elixir or F# which supports that … and wisely or not they might consider that more important than the included libs and the state of that particular ecosystem. Others might like Forth or 5th or Lisp or SmallTalk because they like the language itself and the ways it makes you think about the solution … again, though, other than for utilities or niche applications I don’t think those kinds of languages are going to be an overall “win” in most cases. I might play with something like SmallTalk in retirement, for fun. I can’t see anything compelling about it for business use.
Another reason to go with a niche language is that if you become truly proficient in it, there may be more demand (and higher pay) for devs like that. Elixir is a good example; where it has uptake, they have trouble finding experienced / competent people and tend to pay more even for someone they have to put mentoring / orientation effort into, provided you demonstrate solid comprehension of the basics.
That’s why I love 8th. I also like the fact that I can write code really fast and keep the amount of written code minimal.
Let’s take an example, I have been writing sample code for the Excercism 8th language track.
How would you write Java or C# version of the Largest Series Product track?
Here is a simple 8th version:
: largest-series-product \ s n -- n over /\D/ r:match nip if 2drop null ;then >r "" s:/ ' >n a:map ( ' n:* 1 a:reduce ) r> 1 a:map+ dup ' n:max 0 a:reduce ' n:= a:indexof a:_@ ;
It also depends on your personal circumstances. I have the good fortune of being able to pick which projects I take on and if it required Java I would decline it. I fear Java’s fugliness might seep into my soul.
I find Python enjoyable, PHP & JS acceptable but beyond that I’m starting to lose interest. My days of interest in lower level languages are now behind me.
I believe that low cognitive load is a feature, too. I wouldn’t mind a program 4x as long i it’s (1) readable, (2) comprehensible and (3) more natural language-like without a lot of hieroglyphics. But that’s just me, I guess.
I fear that your Idea of programming has nothing to do with a professional idea of programming. Java isn’t ugly at all it is a good language. Reading words like this showing me that there are people outside which having an Idea of technologies which is carrying big portion of ignorance for technological benefits. Even comparing Python as a scripting language with capabilities for really small circumstances with a a full stack language shows me all times that people having no Idea. So do your stuffs but please: don’t write such ugly sentences which are terrifying people in this wise. Write your code in which language ever but don’t come up with comparisons which are not even going a bit in the direction to truths.
The difference is: Java and also C# are readable and recognizable in its structure of programming and having a structured and always in the same way working inheritance. The inheritance of a language (when and if object oriented) is a needed capability. And the language itself has to be always in the same structure. In my opinion that is needed. Knowing that a language has always the same grammar and the same let me say language use. Look on Xojo: here you have one where it is not so in a wide range. I say only: sometimes Zero based, sometimes One based as an example.
There is Arne big point. Recognizable structures are the next. They are needed for getting fast how stuffs working. And that is not a question of taste. It is a question of usability.
The next important feature is the building of control structures. Look on Golang. A wonderful language but they’re with extremely limited capabilities. This should be the best way of anaylyzing.
When choosing to learn Swift, I did so for these reasons.
- Builds native apps, that can be on par with 1st party apps.
- Complete access to OS frameworks.
- Multi-core support.
- Number of other people using it.
- Massive amount of current documentation and examples to learn from.
- Creates small applications, reducing load time and memory usage.
- I would have gone with Objective-C, but I know that Apple is focused on Swift.
- Macros and aliases which would be incredibly useful for my current projects.
- Object orientated.
- Only need one language to write the entire app.
Things I don’t care about.
- The language itself, commands, syntax, function and event names.
- If a line doesn’t need a “;” at the end or not.
- The IDE, except when it’s a crash fest, doesn’t update or fights me.
- First or 3rd party.
- Compiled or interpreted, as long as it meets the other requirements.
Best way. I am convinced by that method while you want to program for exactly one platform: Apple. I can’t do that and therefore I saw only one Solution for all platforms. Java. With GraalVM I can do that also with a native compiled Software. But at the end: the platform needs are deciding more. The language has not that much differences. the ecosystem has.
Yeah you want hieroglyphics code in APL
Probably the only language I would describe as write only
Its literally “all greek”
Sure what works for one, may not work for t’others. Just revealing how I made the decision I did.
No question like I said the platform decided in your case the best way and the only one with sense
I retired at 49. Not bad for an amateur
It’s not just Java’s syntax that’s hideous, Swing is probably the fugliest UI toolkit in the entire history of the cosmos. I don’t know how anybody could present that to a client without blushing.
Hahaha cool. A few million working uis showing you have no idea. On Top javafx is around and cn1 also. What you wanna tell?
I am personally a not big fan of OOP and hate how C# and Java would force me to encapsulate everything into class. There have not been very big innovations in programming languages since PL/I and it’s 59 years old!
I am personally a big fan of OOP and love how C# and Java force me to encapsulate everything into class. There have been many big innovations in programming languages since PL/I and it’s 59 years old!
ah the religious wars about programming languages start up
A few “million people using Java” does not in any way invalidate his opinion, nor does it strengthen yours