Other Modern programming languages are too cryptic?

  • Thread starter Deleted member 66267
  • Start date
D

Deleted member 66267

Guest
Just have a look at:



I find my head going to explode after 15 minutes of reading their documents.

Do you think they abused syntactic sugar and punctuation too much? The code now is full of punctuation. Many advanced features are actually about code generation, e.g: Active Annotations. I have great trouble to understand the code. Or maybe I'm just outdated and can't ride the trend anymore? The programming languages seem to be very powerful for someone could utilize them.
 
Thank you for pointing me at interesting new languages! While it is 99% likely that I will NOT use them, it's interesting to read them.

Some of the Xtend examples, with the heavy use of lambdas, reminds me of LISP (which I've learned in class but never used), and of using the STL with functors heavily. Some of the examples remind me of SQL, which is a bizarre "programming" language, since you don't actually write a procedural program in SQL.

Honestly, I find the Xtend examples easier to read than modern C++ (17 or something like that). The syntax and semantics of modern C++ has become so rich and complex, I can't remember it all. It's a very different language from the ~2000 dialect I've programmed in for decades.
 
Honestly, I find the Xtend examples easier to read than modern C++ (17 or something like that).
I think the same, too. A limited subset of Xtend is just beautiful to read, but when we go more advanced it's become much more difficult to grasp.
 
Most of these new programming languages are targeting the JVM or compile to JavaScript to run on Node. They are server side languages, different to the syntactic sugar languages compile to JavaScript to run on the browser. A quick search will give you a bunch of them. They are too many. I only tried Xtend and Ceylon, though.
 
Short Version:
My primary issue with such languages is not their syntax. I'd be interested to know, what problems it's going to solve.

Rant Version:
People are using Java, not because it is the holy grail of languages, but rather due to the fact that, JVM is everywhere!
Most people don't need to program in OOP. Some do and have to. OOP is not bad, and sometimes you can't avoid it.
I'm not familiar with Go, and have no interest to get familiar with! C++ is too complex but it works (dev, docs, libs etc)

When I've started to learn TCL, learning its syntax was hard. I could understand the logic behind the Perl, Lua and Shell,
but TCL was another story. I knew it would be worth it. Because TCL solves specific problems thus syntax is not an issue.
Ceylon is dead and gone, and I don't know what problem Xtend is going to solve. Therefore its syntax is irrelevant IMO.

Footnote:
I'm not a C++/Java programmer. Also, I'm not big fan of OOP. Therefore, my opinion on this matter is extremely biased.
 
Ceylon is dead and gone, and I don't know what problem Xtend is going to solve. Therefore its syntax is irrelevant IMO.
Yeah, Ceylon development was dormant. The language is too ambitious, being designed to be able to interop with both JavaScript VM and JVM. After Redhat dropped it, it collapsed under its own weight. The people behind it still not learned about this, they didn't give up any features so it's too much for them to maintain it.

About Xtend, it's the language used in combination with their Xtext framework to develop DSL language. Xtend itself is a DSL language, too. In the days of old Java it was also used as a better Java thanks to it syntactic sugar. After Java 11 it lost it momentum and being in maintenance state. It strength come from its ability to interop seamlessly with Java. As it's the language to develop DSL with Xtext, it will not go anywhere soon. I personally think it will benefit a lot from the use of Java and the JVM on IoT devices.

Fun fact: there is no break and continue keyword in Xtend! Check out: https://namekdev.net/2016/05/what-are-those-features-in-xtend-lang/
 
As much as Haskell? I got bored studying it, possibly because I wasn't treating any real case in my hands. Elegant and boring at the same time, like SQL or spreadsheet.
General Purpose vs DSL, both have their goal.
Aspects of functional programming are booming due to increased cores. I don't see any pure language at the top of the pyramid, just popular languages will take their cryptic parts. The cost of the change is a very heavy train. No killer language in sight. The average programmer needs understanding above coding speed.
 
Fun fact: there is no break and continue keyword in Xtend!
Oh dear! I don't like that. People always are itching and moaning about shell and awk. At least, both of them have those gems.

Aspects of functional programming are booming due to increased cores.
By "core": do you mean processing power, i.e. CPU core, or hardcore programmers i.e. trending among the top circles.

I've tried to get close to functional programming. But I had hard time to understand, why should I do that.
First class function is already exist in some non typical functional languages, and C has its function pointer.
I have to mention, I have a amateurish experience in Haskell --by product of studying functional paradigm.
Another one was F# (3.x). Back in the ".NET 4.5" era. (not .Net core). It was trending, but then it didn't cut it.

[EDIT]
I merged my last reply in one.
 
Regarding the crypticness, may I ask whether it is a big trend to make Unicode characters part of new languages like xtend?

String interpolation​

This one is just weird.

Several languages introduce string interpolation like this:

`some string ${someVariable}`

and in Xtend you go with « and » :

'''some string «someVariable»'''

If your editor doesn’t support this then you’re screwed.
Personally, I find not only the « » cruel, but also the three '''.
Depending on the font used it can be sometimes hard to impossible to differentiate combinations of " and '.
 
Personally, I find not only the « » cruel, but also the three '''.
Here's another problem with this Innovation:
Suppose you want to add some sample codes to a wiki/forums page, which its engine supports some special tags. Some examples:
``` Monospace in some forums engine, and '' and ''' for italic and bold, respectively -- in MoinMoin for example.
Then you have a problem!
 
Regarding the crypticness, may I ask whether it is a big trend to make Unicode characters part of new languages like xtend?
Xtend is called a modern language but in no way new. I think it has been around there for a while.
BTW, adding more Unicode into programming language is a trend that started since a long time ago.
Have a look at Vector Pascal Compiler's manual.pdf, it's really an extreme case. Check from page 63.

Update: Xtend was available since 2011 according to Wikipedia.
 
Regarding the crypticness, may I ask whether it is a big trend to make Unicode characters part of new languages like

To be fair, it isn't a new trend in terms of ideas. Even Plan 9's C compiler supported unicode. It just seems to be something that doesn't get put as a priority for language authors.


Though I do tend to agree that there seems very little benefit to support unicode in the language itself. Either the output terminal or GUI library would provide this stuff surely. You very rarely should use unicode characters in the source code itself. I even think comments in other languages are weird.

Programming is American. I am happy to substitute the 's' for 'z' in a bunch of random words in the sake of interoperability ;)

(Granted I understand non-English speakers have it a bit harder than me!)
 
Though I do tend to agree that there seems very little benefit to support unicode in the language itself. Either the output terminal or GUI library would provide this stuff surely. You very rarely should use unicode characters in the source code itself. I even think comments in other languages are weird.

Programming is American. I am happy to substitute the 's' for 'z' in a bunch of random words in the sake of interoperability ;)

(Granted I understand non-English speakers have it a bit harder than me!)
This is too extreme. Anything extreme is bad.

Vector Pascal above allowed variables and even operators in Unicode, this extremeness is very bad for code readability.

Forcing comments to be in English only is another extremeness. If it's a global project, yeah, everything should be in English. But if it's not, comments are free to be any language the programmer fluent in, usually his mother tongue. I have saw comments in German and Russian, and the Chinese even has a programming language in Chinese characters! And they are completely free to do so!
 
Programming is American. I am happy to substitute the 's' for 'z' in a bunch of random words in the sake of interoperability ;)
It can depend on the circumstances. I have worked in a Japanese company where the Japanese people wrote the comments in their language. Additionally there have been members who replaced English comments from non-Japanese programmers with the Japanese translation. Comments in Japanese and English has been no option. Life is easy if it is just changing 's' to 'z' or vice versa :beer::D
 
Life is easy if it is just changing 's' to 'z' or vice versa :beer::D

Heh exactly.

Possibly the most annoying thing is when a codebase cannot decide if it is Color or Colour ;)
Again, I opt for the American spelling. Whereas wxWidgets goes for the British spelling: https://docs.wxwidgets.org/3.0/classwx_colour.html. I have seen some that mix and match.

Some of my old colleagues had #defines to cover both. Terrible! Imagine if they did that for every language haha
 
Possibly the most annoying thing is when a codebase cannot decide if it is Color or Colour ;)
Why I have to care since I understand both? In secondary school, we learned British English. But in high school and college, we learned US English. My English is already a mix between the two. Sometimes I does write 'color' as 'colour' and 'behavior' as 'behaviour'. I don't think there is anything wrong with that :)
 
Why I have to care since I understand both?
Semantically they are identical sure, but getting them wrong will cause the compiler to be unhappy. Slowing down everyone involved.

This is one of the few things where the slowness caused by intellisense and autocomplete could possibly make up for the slowness provided by mixed spellings of things like colour.
 
Semantically they are identical sure, but getting them wrong will cause the compiler to be unhappy. Slowing down everyone involved.

This is one of the few things where the slowness caused by intellisense and autocomplete could possibly make up for the slowness provided by mixed spellings of things like colour.
What IDE are you using that lags in typing to display intellisense? Also, on what hardware? Pentium 3?
 
What IDE are you using that lags in typing to display intellisense? Also, on what hardware? Pentium 3?
Any to be honest. On large codebases the bottleneck is certainly the disk access.

Visual Studio is possibly the worst due to their reliance on an old EDG compiler frontend used in parsing.

Hardware? I pretty much have access to anything I want. So I have tested a wide range of different configs.
 
Well, yea, if you open codebases that are somehow tens of gigabytes of source files and don't fit into RAM and rely on... disk access... or using grep for code completion... then yes.

Never has been my experience, always worked with codebases that are split into projects.
 
Well, yea, if you open codebases that are somehow tens of gigabytes of source files and don't fit into RAM and rely on... disk access... or using grep for code completion... then yes.

Never has been my experience, always worked with codebases that are split into projects.
A typical one is UE4:

https://answers.unrealengine.com/questions/971188/visual-studio-intellisense-slow-vs2019-ue4251.html

Actually if you look at this slightly biased search, you will see it is a very common issue:

https://www.google.com/search?client=firefox-b-d&q=epic+games+ue4+visual+studio+slow

Typically we use a distributed build system for compiling, obviously the visual studio IDE's intellisense doesn't have this luxury. It isn't workable.
 
So the answer is - Visual Studio is slow.

Yea, I still rarely open that when I'm on support duty and have to support ancient systems written in VB - it is slow-ish. No idea what the hell it's doing.

But typing (at least with 2019) doesn't lag even if intellisense is lagging. You said "slowness caused by intellisense and autocomplete" - that is, just having intellisense think slows everything, that's what you said. Which it doesn't. Your provided links talk about Intellisense popups being slow to appear. Intellisense itself is slow - yes, but it doesn't cause slowness (like you said), you can continue typing without auto completion just fine, and UI is responsive, Intellisense doesn't work nor block UI thread. Unless you're using Visual Studio 2003 or w/e.
 
So the answer is - Visual Studio is slow.

Yea, I still rarely open that when I'm on support duty and have to support ancient systems written in VB - it is slow-ish. No idea what the hell it's doing.

But typing (at least with 2019) doesn't lag even if intellisense is lagging. You said "slowness caused by intellisense and autocomplete" - that is, just having intellisense think slows everything, that's what you said. Which it doesn't. Your provided links talk about Intellisense popups being slow to appear. Intellisense itself is slow - yes, but it doesn't cause slowness (like you said), you can continue typing without auto completion just fine, and UI is responsive, Intellisense doesn't work nor block UI thread.
So if the disk is churning to update the intellisense database, this certainly doesn't help when trying to do a build.

As for the typing, especially with complex templates, it will block for a short while until the context menu is processed. This is very annoying. There are a number of additional actions that block until respective areas have been parsed. They can't get round that, reading from something being written to (i.e the memory and disk AST database) is never good.

Unless you're using Visual Studio 2003 or w/e.
You generally need the latest VS to use upstream UE4. (Until they finally officially support clang on Win32 platforms!).

Older versions of VS had faster intellisense systems (VS6 was lightning fast!). But this is because of continuous bloat added over the generations.

Eclipse CDT is much worse. CLion was better but I can still get work done faster without the intellisense and C++Builder... well, I didn't expect much anyway. Since version 6 it has been downhill all the way ;)
 
Back
Top