|
I fully agree, although I'm pretty sure of the answer most of the time (it isn't better than C/C++, for me).
But recently I'm looking for a good scripting companion to the holy trinity (asm/C/C++) and I found that Julia fills in pretty much those requirements (although in contrast to Python, this language has a huge list of dependencies). I'm always looking for performance and efficiency over ease of use, so the fact that Julia is precompiled (kinda), natively has parallelism (finally) and has basic datatypes (I still can't figure out why anyone could ever want magical-all-in-one-variables, pointers solve everything otherwise).
The languages that remind us of how a computer works are always the good ones. Readability be damned.
|
|
|
|
|
Cool, someone who gets it. So Julia:
- Is a good scripting companion to the holy trinity (asm/C/C++)
- Has performance and efficiency
- Is precompiled
- Natively has parallelism
- Has basic datatypes
You missed out this little detail, which is highly important to me:
- Julia has a C API, so is callable from C++, C#, Python, etc
Alright! That's the most important information I need. I now know that stuff can be written in Julia, it will be performant, and it can be plugged into our C# (GUI/Database/Networking), C++ (data models, calculations), CUDA (GPU compute), Python (user scripting) monolith.
Now I can look at that secondary stuff as it's passed the first hurdle.
|
|
|
|
|
Well, C++ and C# are powerful but complex languages which lean on huge frameworks.
Sometimes snappier, less powerful languages have their right to be - despite its many issues I still mourn Visual Basic the First because writing testers, simple forms and basically oversized scripts was a breeze.
I found it especially useful to interact directly with DLLs and/or hardware devices, much better than writing a CLI - with a handful of textboxes, a combobox and a few buttons you could test any input to any function and visually show a comprehensive state of the system.
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
I sometimes mourn the original BASIC ROMS that came on home PCs. It was nice to turn on an old computer and be immediately greeted with a BASIC prompt. You could type:
10 PRINT "Hello World"
20 Goto 10
Run
and Hello World would scroll forever.
|
|
|
|
|
I agree, that was wonderful.
But in reality those computers were just toys compared to the modern desktop PC.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
I also like C# a lot, but there is no such thing as the best or universal programming language for everything. It always depends on the project and the goal of the solution. The possible paths to the goal are always influenced, shown and limited by the resources that are available.
As mentioned by others, it's not always about performance and efficiency. Often other things get a higher priority, like the target market and customers, or the required compatibility and usability of libraries, tools, or a special environment.
The languages C++/C# certainly ask for good possibilities for desktop or client software projects, but in other areas this is usually not a good choice. To give just a simple counter-example that everyone knows, well-known things are mostly well represented on the web for client/server solutions. For the client, JS (with HTML/CSS) leads, and for servers (outside of cloud solutions) it is still the good old all-rounder PHP.
That is why I am always open to other languages, and I choose what helps best and brings the project work to its goal in the best way.
Something about which we often break our head:
"In the name of the Compiler, the Stack, and the Bug-Free Code. Amen."
(source unknown)
|
|
|
|
|
I mostly want step by step instructions on how to configure the working environment. And after it the explanation of what and why is needed, and how those are connected.
|
|
|
|
|