You are not logged in.
A very weird question, I know.
Me: Python and Dart.
I messed my Arch Linux installation, then fixed it
"Sometimes the best complexity is simplicity." - BluePy, 1856.
Offline
What windmill am I tilting at today? Bare metal embedded microcontrollers? Console application? Web service? Could be Python. Could be C. Could be Rust or Go. Could be Javascript.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
It's not a weird question at all. In fact it's quite common. But that doesn't mean it is a good / wise question.
This is a bit like asking a mechanic what his favorite tool is. They might have an answer particularly if they just got a new tool. But the fact that they're currently enamoured with their shiny new impact wrench doesn't mean you should go out an buy one - especially if you aren't already equipped and skilled with a bunch of other tools.
This question tends to be asked by those early in their programming journey. And heeding the answers received tends to only impede that journey.
Figure out what you want to make, then figure out what programming language is well suited to that task and reasonably comfortable for you. Then start coding.
Now if you'd like to hear which languages are my least favorite, I could definitely name a few. But I suspect this thread will turn into everyone just listing what's "popular" and at that point you'll pretty much have my list of least favorite languages.
Following from this metaphor, my favorite programming language is my feet. More literally then, my favorite programming language is logical reasoning. It has countless dialects, each one used in different areas, but all the same language.
EDIT: also if you didn't mean this thread to be for your own learning purposes, but rather a poll to see what is popular, then it should be in the "Try This" subforum ... except that there already is such a poll there: https://bbs.archlinux.org/viewtopic.php?id=164158
Last edited by Trilby (2024-10-25 15:35:15)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
You might find the stats in the links below interesting.
An answer could be, the right language for the job :-)
But something I use everyday is bash, sed and awk, and more python everyday.
After that java, c. Although pascal holds a place :-)
On the other end of the stick, as a user and not a dev, I have found alternatives to applications because of the language they were written in.
Last edited by mountaintrek (2024-10-25 20:02:11)
Offline
But something I use everyday is bash, sed and awk, and more python everyday.
You use awk everyday? I'd never place it anywhere near the same pedestal as bash, sed, or python. I haven't used awk in the last 20 years and even before that it was rare.
Offline
The best programming language is whatever one you became familiar with first. All the others are too complicated. Obviously.
(I've noticed that, in programming discussions, "simple" often means "similar to what I know" and "complicated" means "different from what I know".)
Also, awk is one of those languages where I have to read the documentation every time I use it. I have to ask, mountaintrek (or anyone): What are you using awk for? I rarely ever have a use for it.
"Don't comment bad code - rewrite it." - The Elements of Programming Style (1978), Brian W. Kernighan & P. J. Plauger, p. 144.
Offline
Awk's strength is in working with tabular data files or log files in which each line at least starts with a predictable structure (like pacman logs and journal entries).
Last edited by Trilby (2024-10-26 13:03:24)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Adding to Trilby's response. gawk is great when you have defined single or multi-line records. Bash may be able to do it, but gawk was made for text processing and can do it in a less verbose way because it has implicit read, more sophisticated field separator, special variables, built-in functions, floating-point arithmetic, and multidimensional arrays to name a few. I also use awk within a bash script.
The GNU AWK is a good source.
The best programming language is whatever one you became familiar with first.
Um, Cobol, Fortran. and PL/I :-)
Offline
Some part of the question I usually respond like this:
Since I "work" with this, I don't have a favorite one because the most wise thing that you can do is to use the right tool for the right job. In this case programming languages a simple example: I need a fast response application so please don't use python (Unless you are a cython kind of guy among other dark magic stuff). And also probabbly most of the time the stakeholders doesn't want to spend money to rewrite the service in another language, so you could get forced to write in a language that you think is not the best for the context. That's life, so for that I don't have a favorite one.
But outside job I really like many ones. The only language that makes me feel like meh (Not angry kids), is Java. Maybe I'm a little Torvalds to my things or maybe not. But Java is not my jam. I don't hate it but usally is the kind of language that comes with: why not this another languages to do that ? So my answer is everything except java, I feel like I'm working with a bad dinasour intead of C which is a more older one but more lovely.
Long story short:
C: Saltasaurus with Jurassic park music in the background.
Java: Old grumpy Stegosaurs trying to avoid fat using Ozempic[Oh god how a i hate the names used in the libraries of java] and addicted to heroin.
Last edited by Succulent of your garden (2024-10-29 14:04:49)
Offline
I need a fast response application so please don't use python
That is a (partial) misconception. Interpreted python is never going to be fast, but one of python's strengths is that many of the commonly used components have been compiled and optimized to high-heaven. As long as the rate limiting steps are offloaded to those optimized bits, having the glue code in python is harmless to performance. A good example would be computationally intense projects written in python but (properly) using NumPy or a similar library - this can result in great performance far better than one would get from coding the algorithm from scratch in C themselves in most cases.
... the most wise thing that you can do is to use the right tool for the right job... But Java is not my jam.
Accepting that the best tool for the job depends on the job does not imply that every tool has a job it is good for. It is quite possible that Java sucks at everything. That's my view at least. It seems the only application for which Java is really suited is for introductory programming classes - though I'd argue its quite poorly suited for that too! It's like faculty new they'd have to start students with some language, and each language has it's strengths and weaknesses: to avoid biasing students thinking to certain kinds of tasks, they picked the language that has no strengths. I'd say students may as well start learning a language that is at least good for something even if the focus is not on the language but on algorithms and logical thinking.
Python's structure (i.e., use of whitespace) has never sat well with me, so I don't love it, I do think python is a great language for students to start on. It's at least as easy to get into as Java, and can actually be useful in many contexts.
In my experience people can drink java while coding, or code in java while drinking: because nobody would deal with that language while sober.
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Hi Trilby
The optimization is sooooo true, best example the machine learning libraries and numpy as you said. I think that the only issue may be the single thread use by default in python. So if you have a project with a lot or paralalization maybe you can use the cython thing or consider another language. For that i never consider python a bad language, just people don't knowing it well enough, or lazy people that use python becuase is only easier to other languages.
Java has the thing about everything is in a virtual machine, maybe in the 90 and 2000 was a "good" thing in some certain contexts for security reasons [It seems like this programming language was concived by the idea: Hi please don't use C because of buffer overflows, use Java if you want to be secure], but now languages like Rust or Python solve the issue in a more convinient way.
I think the only real Java lover person that can I imagine, are game developers that like full opensource and use godot, instead of things like unreal or unity. Never been into that too much, it's not my thing, but maybe there are some happy people that code with java in godot and are fine, and probably not sober.
Last edited by Succulent of your garden (2024-10-29 17:11:56)
Offline
Java before Java 21 be like: Write once, run debug everywhere.
I messed my Arch Linux installation, then fixed it
"Sometimes the best complexity is simplicity." - BluePy, 1856.
Offline
For me, it's C++. Maybe it's simply because I know more about it than other languages. I know little about other languages. Btw, if Python makes the codes simpler or shorter, Python will also be a choice.
Last edited by Sving1024 (2024-11-06 13:43:23)
Offline
I'm a webby so I use Go on the backend and lately react on the front.
I've been through angularjs, angular, vue and now react.
I used to do RESTful APIs, but now have adopted graphql, because ent has such an excellent graphql extension that works so well with gqlgen.
I love to define my data models inside Go and their relationships too.
If that would not had existed I would've written it.
Previously I have written a backend http api generator, but it was missing relationships, complete with the Angular and Vue models and access methods.
But now ent and gqlgen and the graphql extension do the backend's job.
They create a relay(.dev) compatible backend, which can then, after a learning curve (the relay documentation can use improvement, but they have a discord server channel) quite easily and comfortably be integrated.
I can bark at Facebook/Meta a lot, with a passion, but this time they did something good.
I love Go and hate Rust.
Tried to get into it time and again, but it's just so ugh. SUCH A HIPSTER LANGUAGE!
I did PHP previously because that's all there was, and Perl didn't count.
I started at the age of 11 with BASIC on the CPC 464, a year later I had a C64 with the "Final Cartridge".
It had a feature where you could freeze execution and enter a disassembly/assembly monitor,
where you could then manipulate memory and even save memory dumps to disk.
So guess who cracked his first game at the age of 12? Then I learned how to write cracktros and link them with the memory dumps.
When you're young your brain is on steroids. Later my dad bought me a book which made everything easier.
There were times where I would need to enter machine code to program.
Good times. Then, later, a lot later, Turbo Pascal, Borland C++, Delphi and actually C and C++, because I got a job at some startup,
but it was a lot to take in, learning C++ from scratch, where previously I only did some WINAPI cheat writing.
However my knowledge of WinAPI helped some of the devs there.
But C++ was a hard nut to crack, but also mind expanding.
I didn't really know what I was doing tbh, zero knowledge about patterns or good practice. That was in the year 2000.
Pre Internet boom. Good old forum culture and mailing lists. And ICQ . When you had an issue you asked one of you ICQ contacts
and together you would figure things out. That created friendships.
Well I digress but the early internet days were really something. Freedom, creativity, unregulated space. Today is different.
Anyhow Go jobs are not very common in Germany.
They're mostly Java C# or PHP.
Funny thing is, back in 2000 when I picked up Gentoo and that was my first Linux distribution, great learning experience,
I wanted to work as a PHP dev using Linux, but it was all Microsoft everywhere. asp.net and C#. bleh.
And nowadays web development means mostly PHP and some Shopware or Magento code monkey.
Not very interesting. And omg Symfony *makes a crucifix with his hands*, it's everywhere.
And Go jobs? Few and they all want you to be an expert in AWS mostly.
Screw AWS and hyper expensive public clouds.
So I'm unemployed and have been for a while.
When you're young and just starting out, pick up C# or Java if you want to have a non sucking job.
I played with both, but Go has better memory consumption and better performance and is not a headache, mostly.
So to conclude, Go is my language and in terms of front end, there is no clear winner, but Angular is a pain in the ass.
Angular is to JS/TS frontend what Java is to backend.
For anyone looking for a practical solution for web dev, I strongly recommend Go with ent and gqlgen and React Relay.
It's just beautiful and resource efficient.
Offline
In my last job I mostly did back-end development in Python 3 and occasionally some front-end development with CSS and ES6.
In my new job, where I'm working since the mid of last year, I currently read Java and C and write Rust.
Although I'm not programming full-time anymore, since my new position also requires me to coordinate and direct external contractors.
Inofficial first vice president of the Rust Evangelism Strike Force
Online
I mostly use Python at work, for data analysis. I also have a couple of personal projects written in Python, and some simpler ones in bash.
In university they taught us programming with C, but I haven't really done anything with it in years.
I looked a bit into Haskell, since I'm an XMonad fan and user, but I'm really just a beginner with it. I find it very interesting though, I'll probably dig deeper into it in the future.
Offline
I love Go and hate Rust.
Tried to get into it time and again, but it's just so ugh. SUCH A HIPSTER LANGUAGE!
...For anyone looking for a practical solution for web dev, I strongly recommend Go with ent and gqlgen and React Relay.
It's just beautiful and resource efficient.
In december I'm going to learn Rust, go I know something but also I'm going to learn it, but since I know C very well, It will pretty fast and easy, I started a couple of months ago but now I'm not coding but I really like it.
I understand that go could be a better than Rust in backend web development. It seems for me that go is well used in web backend, but Rust is great for creating core utilities for example or system programs like Alacritty. But do you don't like Rust in general or only in web development? I really like my Rust made programs, but since you seems to know C++ well I'm interested in know why you don't like Rust.
Offline
since I know C very well, It will pretty fast and easy
Inofficial first vice president of the Rust Evangelism Strike Force
Online
This is a bit like asking a mechanic what his favorite tool is. They might have an answer particularly if they just got a new tool. But the fact that they're currently enamoured with their shiny new impact wrench doesn't mean you should go out an buy one - especially if you aren't already equipped and skilled with a bunch of other tools.
Are they tools, really? If programming languages were/are tools then they must be amazingly multi-functional tools - heh
Offline