It feels like anything is mowed down on the internet. I’ve been a dev for a long time too, and I never feel sure when I chose a stack for a new toy project (in my day job I rarely get to chose, so that’s a non issue there)
- Kwdg ( @Kwdg@discuss.tchncs.de ) 61•1 year ago
There is a good quote from Bjarne Stroustrup for that “There are only two kinds of languages: the ones people complain about and the ones nobody uses”. I think for hobby projects it’s the best to use languages that interest you
- dudinax ( @dudinax@programming.dev ) 7•1 year ago
There are two types of programmers, those who write buggy code and those who never do anything.
- jeremyparker ( @jeremyparker@programming.dev ) 1•1 year ago
This for sure. At work (fe dev), I need to get things done quickly and reliably, so I use Svelte. At home, I’m just playing around, so I’ll try things that are out of my wheelhouse or strange, eg rn I’m rebuilding the site I always rebuild in Qwik, Go, and Surrealdb - why? Because they seem neat. (Though I might just rm rf that to build something on Bun, because is there anything is can’t do?)
- Matthew ( @Matthew@programming.dev ) 15•1 year ago
C# doesn’t have a big spotlight on it like Rust or Python, but it is a popular and very unhated language. It’s a good language that is regularly improving and has phenomenal documentation. Seriously, I’ve not gone to Stack Overflow for anything C# (outside of third-party libraries) for years; Microsoft’s documentation gives me everything I need.
- Kogasa ( @kogasa@programming.dev ) 16•1 year ago
As a Linux user / human, obligatory fuck Microsoft. As a .NET dev, what they’ve done with C# is really great and it’s a very pleasant language and ecosystem to work with.
- Elderos ( @Elderos@lemmings.world ) 5•1 year ago
It is incredible really, I worked with C# for so long, and I tend to be very critical of the stuff I’ve used for a long time. For C#, I am struggling to figure how I would improve it, because all the stuff that suck in C# is usually the lesser of two evils.
Of course if you hate classes, types, managed memory or anything invented in the last 20 years you will hate it, and I’ve met people like this. That is why you gotta keep learning as a dev, you don’t want to be one of those.
- Kogasa ( @kogasa@programming.dev ) 3•1 year ago
The 2 that I struggle with on a daily basis:
-
missing discriminated unions. Third party libraries kind of sort of fill the gap, but it’s a pain point.
-
a flawed async programming model. Namely, there are multiple models (for historical reasons / backwards compatibility), and the more current one (task-based) throws a wrench in your ability to effectively design interfaces, functions, delegates etc. that can be shared between synchronous and asynchronous code. Green threads would have fixed this, at the cost of some other potential issues, but it looks we’re stuck with tasks for now. Also, there is the awkwardness of needing to constantly use .ConfigureAwait(false) after every await, unless you shouldn’t (e.g. in the UI thread), and if you get it wrong you might cause a deadlock in your app but not in a console app… A bit confusing and easy to mess up.
- mavnn ( @mavnn@lemmy.sdf.org ) 1•1 year ago
F# will give you discriminated unions and do-notation (it calls it ‘computational expressions’) while retaining full access to the .net ecosystem.
- Elderos ( @Elderos@lemmings.world ) 1•1 year ago
I really like ReactiveX for async programming, though having to go through a library is definitely a pain. It also does not make it less awkward to design your public API unless you’re okay exposing Rx types. Fair points!
-
- ck_ ( @ck_@discuss.tchncs.de ) 15•1 year ago
Honestly, I would advise to not pick a language based on popularity, hate, or whichever of those qualify as internet fame these days.
I would approach the question with what you want to get out of your toy project. Do you want to get something done? Then pick a language that is close to what you are already familiar with. Do you mainly want to learn something? Go with a language with concepts you are unfamiliar with, eg. pick a functional language if you mostly do OOP stuff or pick a low level language when you mostly do high level web stuff.
My advice, generally speaking, is: When you do something in your spare time, don’t spend it on things you already do at work. The way to improve in software development is to see problems from many different angles and to rethink the solutions you already know.
Whenever I tested something that sounds great yet it is slow to get adoption I end learning a reason why it it’s not growing. It’s good to learn what the reason is before you spend a lot of time on it
- ck_ ( @ck_@discuss.tchncs.de ) 5•1 year ago
No amount of reading will replace experience. At some point you will come to the place where you’ll be the one who know why something that sounds good won’t be and why it won’t get adopted, but if you only base your decision on the opinions of others, you’ll never really learn anything.
- Corbin ( @Corbin@programming.dev ) English14•1 year ago
As a society and as individual computer scientists, none of us actually know what a computer is or how to use them. All programming languages are guesses, mere attempts to encode our natural-language reasoning and philosophy in the purely syntactic and formal fashion required by computers. Don’t let yourself become biased in favor of specific languages; instead, understand that all languages are bad in different ways.
- JackbyDev ( @JackbyDev@programming.dev ) English12•1 year ago
As humans we (you are human, right?) have a negativity bias. Working projects are better than perfect tech stacks. Seriously. Anything even half way working is infinitely better than anything in your head. Just pick something and go, especially for you projects.
There is a bot posting ai generated stuff on my server, but this is my normal account, to post normal human things
- JackbyDev ( @JackbyDev@programming.dev ) English3•1 year ago
Oh yeah?
- [ ] I am not a robot
Solve that.
I am a fellow organic food ingesting, carbon based human, using my meat based appendices to slowly communicate with other carbon based humans on the public network. While I type this my meat based appendices are getting very tired, because I totally had to use mechanical movements to close electrical circuits in a very inneficient way to send signals to a computer
- coltorl ( @coltorl@programming.dev ) 12•1 year ago
A lot of the criticisms at specific languages are really directed at people. Especially those that have “{language} brain”. These people are of the opinion that everything looks solvable by said language even if it isn’t the best tool for the job.
If you pick the best tool for the job, no one has standing to rightly criticize you. What’s the right tool? One that you know (or have the ability to learn) and has proven itself in its ability to solve problems you’re seeking to solve.
- nous ( @nous@programming.dev ) English9•1 year ago
There are two types of languages, those that people complain about and those that noone uses. Though rust has been voted the most loved for many years now on the stackoverflow yearly survey, and for good reason IMO.
- TheV2 ( @TheV2@programming.dev ) 5•1 year ago
I haven’t seen any negative criticism on chillicheescript here.
- jsdz ( @jsdz@lemmy.ml ) 5•1 year ago
If all you want in a programming language is that it not frequently be the target of mean-spirited critical reviews, I recommend Befunge. It’s a bit old and I don’t think anyone has updated it to be powerful enough for modern enterprise-level work, but there exists a non-zero chance that it might be suitable for one of your toy projects.
- TehPers ( @TehPers@beehaw.org ) English2•1 year ago
I would also recommend one of its successors, Seed. It’s like the TypeScript of Befunge.
- shnizmuffin ( @shnizmuffin@lemmy.inbutts.lol ) English5•1 year ago
Haven’t heard a bad thing here about COBOL (yet).
- Reptorian ( @Reptorian@programming.dev ) 5•1 year ago
Every languages has their own pitfalls. The answer on picking a language is to pick whatever works for you. There may be even domain-specific languages if you’re interested in a domain, and it can be way more flexible than general-purpose solutions for that domain too.
I use 4 languages.
- C++ for adding features to a program.
- C# for making .dll for an application (
Paint.NET
). Kinda similar purpose to what I do with G’MIC, except so much more limited. - Python for processing strings
- G’MIC for creating/editing raster graphics images (volumetric too)
Now, I wish there was a vector equivalent to G’MIC, but there isn’t.
- phantommachine ( @phantommachine@programming.dev ) 3•1 year ago
Definitely Verilog
- thingsiplay ( @thingsiplay@kbin.social ) 3•1 year ago
@fbmac You search a programming language that is not criticized? Every language has its flaws.
- Kissaki ( @Kissaki@feddit.de ) English2•1 year ago
I never feel sure
Never feel sure about what? Whether some people criticize the stack or point out issues with the stack?
I never feel sure what I want to use, and I get tempted to stop what I’m doing to do something in another stack, because I am most interested in the tech than my own toy project
- swordsmanluke ( @swordsmanluke@programming.dev ) 1•1 year ago
Learn as many languages as you can!
The first language we learn is always the hardest because we are learning both the syntax and the concepts of programming at the same time. Most languages have a pretty large overlap in concepts, so you’ll mostly just be learning syntax, which is easy to pick up.
Each language that you learn will likely introduce you to some concept you haven’t used before, which makes it that much easier to learn the next language and gives you a new way to think about problems no matter what language you’re using!
I try to learn one language a year, even if it’s not directly applicable to my job. In past years, I’ve learned Go, Rust, Rockstar, Perl (and more). This year I’m learning Lisp and it’s a ball so far!