This might be an unusual answer, but OpenSCAD. OpenSCAD files are just so much easier to work with when you’re doing 3d printing than some random .stl file that might be non-manifold (have holes, self-intersections, whatever) and is usually really hard to modify in reasonably precise ways.
If it’s an organic shape (a human form or whatever), then it probably makes sense to share it as an .stl. But if it’s a wall mount for some device or an enclosure for a Raspberry Pi or something, it’d be so much nicer if they’d made it in OpenSCAD rather than FreeCAD or TinkerCAD or whatever.
If it’s not in OpenSCAD, it’s honestly more often than not unusable. Even if I don’t need to tweak the file. Unless it’s an organic shape kind of art piece, I usually end up recreating the same shape from scratch in OpenSCAD.
This but FreeCAD!
Javascript
good one :'D
For backend development, you mean? It’s essentially required for front end development (granted you can use a language that compiles into Javascript… also is activeX still a thing or have we killed it off).
These days, WASM is also an option. I’ve written an SPA with HTML+CSS+Rust. The Rust gets compiled to WASM. There’s a bit of JS under the hood to load the WASM and access the DOM, but that can be generated for you by a framework, like Leptos.
Didn’t think I’d have to add /s 😅
With proper context I’d also say JS because I would hope popularity would lead to improvement. I like writing JS but hate building, troubleshooting, and installing it.
Not really a language you would write in but WebAssembly. I have this dream of a single WASM runtime environment across web, desktop, mobile with devs writing apps once, compiling them down to WASM, distributing them over the Internet, and users running them on any platform they like.
I think you just described Blazor WebAssembly
Blazor and webassembly are different things. Webassembly is a runtime, blazor is a framework built for webassembly. They do not compare
Blazor WebAssembly ticks the boxes that @treechicken@lemmy.world described.
I have this dream of a single WASM runtime environment across web, desktop, mobile with devs writing apps once, compiling them down to WASM, distributing them over the Internet, and users running them on any platform they like.
You write the app once and it can be compiled to WebAssembly that works across web, desktop, and mobile.
In reality to take full advantage of Blazor you’re probably going to use Blazor Server/hybrid for desktop and mobile but the principle is the same, you’ve only written your app once but it works in every environment.
That only works with c# though. What they are suggesting is compiling any arbitrary language to wasm and run that anywhere. Which is technically already possible with WASI and any of its supported runtime.
A lot of new languages are going to support WASM now that garbage collection has been implemented into the language (Go, Python, Java possibly). Now if we could get the JS runtine to just use UTF-8 instead of the shitty archaec bad UTF-16, there would just be no reason to not use WASM
AKA Java
Rust. It’s so good, it can’t be popular enough.
I wish it was more popular so more job offers would pop up :P
for real. I’m very lucky to have landed a job in it, but it’s a dry market for anyone looking if they don’t want to be doing crypto. Rust has made a big name for itself but still isn’t that popular where it matters.
Autoit was great. The documentation is good and it’s very accessible.
Lisp
It solves so many problems new languages have been invented to try and solve, while being simultaneously simpler than most
I love lisp. Well, scheme and less so clojure. I don’t know why. Is it macros? Is it the simplicity? Or is it just nostalgia from learning it during a time in my life.
But I just can’t find a place for it in my life.
It’s not job material, effectively nobody uses it. It doesn’t solve basic problems with ease like Python does.
And because of this, anything I do in it is nothing more than a toy. As soon as i put it down, I have no hope of picking it up or maintaining it in 6,12,24 months later.
A toy I spend 2 weeks in absolute joy, but as soon as life gets in the way it is dead.
I understand the general job market, but what about lisp prevents you from pursuing personal ventures with it?
I’m old, I have other shit to do, and I don’t have the time. If I’m writing code, I’m doing it because there is a problem that needs a solution. Either solving someone else’s ‘problems’ for $$$, or an actual problem at home.
If it’s a short term problem like “reorganising some folders” I’m not going to (re)learn another language. I’m going to smash it out in 30mins with whatever will get the job done the quickest, then get back to doing something more important.
If it’s an ongoing problem, I’m going to solve it in the most sustainable way possible. I might fix the problem now but 100% someone’s going to drop support or change an API in 2 years time and it’ll break. Sure, doing it in Chicken would be fun. But the odds are, I won’t remember half the shit I learned 2 years later. It’ll be unmaintainable. A forever grind of learning, fixing, forgetting.
So without a commercial driver to actively invest in Lisps, there’s no point. It’s not profitable and It doesn’t solve any problems other tools can. Without the freedom youth brings, I don’t have the time to do it “for fun”.
I really enjoy writing clojure lately. the only thing that annoys me is the whole “hosted” thing where you either get a bunch of good clojure-native libraries or all the JS’s npm mess (other clojure hosts are very much non-existent).
Yeah Clojure is like the monkey’s paw of Lisp weenies. It adds many modern day niceties that are lacking in standard Scheme or Common Lisp, but also changes enough things to make it feel very un-lispy. I go back and forth as to whether or not I even consider it Lisp (Richard Stallman doesn’t).
But I do know that I’d rather write Clojure than any other non-lisp language.
I’d also recommend people try ABCL, which is Common Lisp on the JVM , or Parenscript which is Common Lisp that compiles to Javascript.
I dabbled with CLisp a while back, and I loved it – but I’m not sure what problems it solves. Do you mind expanding on that?
Common Lisp “solves” most language-level problems by providing metaprogramming capabilities via lisp-style macros. (Almost) any language feature you would want can be implemented with lisp macros, and many such features already have been. So you don’t have to worry whether or not lisp has “for i in…” loops, or pattern matching, or generics, or virtually anything else, because if it doesn’t, you can write it! Plus if it’s really a good feature somebody has probably already made a library for it (if it’s not already part of the standard).
One of the most extensive examples of this is Coalton, which is an ML-style statically typed EDSL for Common Lisp.
There are metaprogramming features in a few other languages: template haskell, C pre-processors, even macros in Rust or Julia. But these all fall very short of lisp-style macros because those languages are not (truly) homoiconic, which makes the macros awkward to write and integrate into the language. This kind of metaprogramming is rarely employed, and when it is only for heavy duty tasks, and even then is generally discouraged as a last resort/special circumstance. But lisp macros are very easy to write because it’s the same as writing any other piece of lisp code. This results in macros being used often for smaller lightweight abstractions in the same way you write a small function.
The other big pro of lisp is image based development. But that’s not so much solving a problem in other languages as it is simply a feature that they don’t (and pretty much can’t) have.
And all of this is done in a language with less syntactic and semantic primitives than almost any other language, including the other “simple” ones like Python, Ruby, Elixir, etc.
Oh yeah. I would love to replace Python with Nim. The fact that you can generate self contained executables without effort is a huge selling point for me. And dependency management with Python is just awful.
I really like some things about Nim, but I think it’s held back by its BDFL, its documentation, and the complexity of using some of its advanced features. I wonder if the Nimskull project will eventually become a more popular choice.
rexx is my favorite programming language. it’s an interpreted language similar to python but it has actual visible block delimiters instead of going by indentation. the error handling system is also very convienent. the reason it probably faded into obscurity is it’s wild cowboy take on typing- EVERYTHING is a string until you try to use a math function on it. i get that it’s unrealistic for writing anything performance-sensitive but for writing shell scripts and utilities it is unmatched in it’s simplicity. it definitely comes closer than anything else i’ve ever seen to the COBOL ideal of resembling natural speech. the rexx interpreter was a default feature on the amiga and i think also os/2 but these days it’s really only ever used on mainframes and the few open source implementations for desktops and servers are a bit clumsy which is a real shame
I wish popularity wasn’t a factor when considering which language to use for a project. Just pick the language best suited for the job!
This is obviously unrealistic. Choosing a largely unknown language is a bad idea because it makes recruitment unnecessarily difficult - even if it’s the best language in the world for this particular task.
But imagine a world where we’re not stuck with Java, C++ and Python as the only viable options.
I wish popularity wasn’t a factor when considering which language to use for a project. Just pick the language best suited for the job!
“Best suited” doesn’t exist. There are several languages that are all capable of doing any job you want.
Popularity means you’ll have an easier time finding people who already know it. And that there will be tools and library support. You don’t want to spend 1.2 million on a s project to find out that your language or major libraries are no longer supported…
AutoHotkey
Autohotkey is the most arcane fucking language I’ve used, idk why someone hasn’t rewritten it in something clearer.
Love the functionality, hate the syntax
Haskell
I write Scala code for a living. Scala may not be the best language at anything but it’s extremely good at everything. It’s extremely versatile and easy to fall in love with. It’s really unopinionated and has a number of sub-ecosystems that are super cool but it makes it hard for newcomers to navigate it. It attracts passionate and clever people, but as a result comes with a (rightful) reputation of being hard/expensive to hire for.
Its curse is that it’s the most niche mainstream language, or the most mainstream niche language.
It attracts passionate and clever people, but as a result comes with a (rightful) reputation of being hard/expensive to hire for.
Worked at a Scala shop for a while. It was interesting as an outsider to see exactly that play out (I’m a diehard Unix hacker type, love Go etc.). There were some brilliant minds who really seemed to “get” the Scala thing. Then there were others who were more run-of-the-mill Java developers. Scala and the JVM makes all that, and everything in between, possible. With so many Java projects around, the Java devs would come and go depending on team/company factors like job cushiness, salary, or number of days in the office. But the more Scala-leaning people hung around. They made a huge impact on how projects were run.
The bosses would often talk with me about how hard it was to find those people. From a business perspective, they said it was absolutely worth the effort to find the Scala people despite operational overhead of the rotating door for the armies of Java devs.
I’m mainly annoyed by Scala not being more popular, because Kotlin is popular (obviously for political reasons) and I really don’t feel like it’s simpler.
Namely, it implements a similar number of features, but because it’s not yet as mature of a language, there’s tons of weird rules how you can’t use these features, because they basically haven’t implemented that yet.
C#.
It’s a pleasure to work with, cross platform, superb documentation, great support and a robust ecosystem. The only complaint people ever seem to have is moaning about Microsoft.
Plus it has a decent web framework in Blazor. I’m not a developer by trade, but I’ve enjoyed it in the context of small, personal projects.
Yeah, you do have to set the opt out of telemetry for the runtime as the default is opt in…
Is it really unreasonable to gain insight in to how their tooling is used? If it were being used to sell to advertisers I’d agree with you
A company that insists on putting “edge” back on my toolbar no matter how many times I remove it is not trustworthy enough to get telemetry.
I personally mind because its microsoft. I don’t like them nor do i trust them. There is stuff i use where i don’t mind the telemetry and i leave it on to help developers. But microsoft is not one of them.
I prefer opt in, but I guess that’s a dream.
Some info for others: https://learn.microsoft.com/en-us/dotnet/core/tools/telemetry.
Seems odd that ‘dotnet run’ will collect, but ‘dotnet app.dll’ will not.
And PowerShell, as an addendum
I despise powershell. But I have no actual reason for that opinion. … I’m just familiar with Bash so anything else looks like too much effort.
Personally, I think, it’s dumb, because it’s more verbose than most programming languages. I’m normally even a fan of verbosity, but Powershell just feels like using big words when little words would do.
I’ve been a Java developer and even I find powershell obnoxiously verbose. Especially for a friggin shell.
Yeah, my word choice was quite deliberate there, because there’s this other full-fledged programming language, which is also often less verbose than PowerShell, called
Microsoft JavaC#.There is some nuances, which don’t make this quite as hard-cut, but in far too many cases, PowerShell is just an objectively worse choice than C#.
(And I’m not saying that C# is a particularly good choice, but since it can also make use of the .NET APIs, it is particularly easy to argue that it’s better than PowerShell.)
I found that the tradeoff came in the form of being more explicit, thus requiring fewer comments and less explicit readmes. Developers who normally struggled with naming things well would do better in PowerShell since it kinda “forced” them into the habit and structure. I know fans of Go (myself included) generally like that it takes that concept to the extreme. It fit my needs well at a time when I had a team of juniors to manage and teach.
Overall though, nothing wrong hating that strictness or verbosity! Lots of good options that support the reverse extreme and more moderate ones.
It’s weird to have something that verbose for using in the shell. I don’t want to use verbose commands when just doing stuff interactively, so I never learn how to really use its features as a concequence. Bash, while it has more footguns, is more readable to me because I’m more familiar with the individual commands. For most programing you spend more time reading it than writing it, but that’s not the case for the shell so there it’s the wrong tradeoff imo.
nushell feels like a pretty good in between of the two. I’m still going to use fish tho.
PowerShell 5 and up use BASH aliases out of the box so your hate makes less sense nowadays.
Oh I don’t think I made it clear enough. I know full well my opinion has no merit. I legit know nothing about Powershell, other than it has a uniquely blue background.
Not hating, but you should really try it out before forming an opinion. PowerShell Core is multi platform and if you value readable scripts at all, PowerShell is heads and shoulders over bash. I know all of us admins are proud of our bash scripts, but bash reads like hieroglyphics to anyone who didn’t write it. PowerShell has noun verb syntax and just heaps of syntax sugar. Scripts, even more than code imo, needs that readability for fast debugging and maintenance.
But hey, opinions on languages and such are highly, highly subjective. No skin off my nose if you just don’t like it at all.
You’re completely right. The deeper I get into bash the more absurd it is. Trying to iterate through text delimited by line breaks is ridiculously complex. And the sheer number of options for find and replace style operations is confusing sed, awk, printf, why?!
Oh and that’s somewhere where PowerShell really shines! Check out the examples on the docs page for some examples and see how easy they are to read and write compared to sed/awk/etc.
I also think PowerShell being object-based instead of string-based gives it flexibility for those of us who have experience with object-oriented programming languages. Being able to ship around objects to functions, splatting, etc are huge value adds for me personally.
Again though, sooooo subjective! Some people will legit hate that it’s object-based and hate the syntax. The world supports all kinds of developers and we’re all making cool stuff, so it’s all good!
PowerShell is heads and shoulders over bash
Sure… but that’s a low bar. Bash is basically the worst shell of them all (if you exclude the ones that are so bad nobody uses them).
I’m a fan of
fish
personally. It’s both concise and feature rich. The fish language isn’t something I’d want to write a complex shell script in, but it’s a thousand times better than bash and if you’re writing something complex then I’d argue any scripting language is the wrong tool for the job. Including Power Shell. You should be using a proper programming language (such as C#).PowerShell is innovative, for sure. But string output/input shells scripting wasn’t broken (unless you use bash) and I’m convinced trying to fix it by replacing simple string input/output with objects was a mistake.
I love OOP. However I also love using existing tools that work well, and none of those tools are designed to be OOP.
You’re right that Bash is among the worst options available, but it is common and what our friend above indicated he had experience with. I think your points are all valid, but I also find that most professional situations don’t offer much choice in the matter anyway. I used PowerShell because it was my company’s standard and there were 10 years of technical debt built around it. I got to know its ins and outs because of that and find some of them neat.
I don’t think anyone should take any of my messages as saying PowerShell is best in class for any particular use cases, but I do enjoy using it. I’m all Python and Golang now anyway 🙃
I pretty much only code to mod games, which is 90% C# for the things I’ve modded. Everything about the language, I learned from a Neverwinter Nights guidebook lol
Fucking Microsoft, with their fully featured toolsets, libraries for everything, fantastic IDE, second fantastic IDE, and cloud infrastructure that actually delivers on the promise of cloud, and isn’t just “bare metal bullshit in the sky”. Hate those fucking pricks.
Ye an closed source debuger and non free extension for vscode, that developer kit thing that is not free to use if more then 5 people
Is VS for C# actually good or is it just that there are no alternatives?
Rider is an alternative that’s in my experience better
If you mean Visual Studio IDE (not VS Code), it’s actually the most robust fully featured IDE I’ve used. Using other IDEs, including other frameworks or languages, don’t come as close.
Easy management for external packages, easy build and project dependency mappings, easy unit test suites, etc. A lot of extensions work great out of the box (DB integrations, code coverage tools, security/vulnerability tools, benchmark testing, etc.).
Seeing as a lot of C#/.NET things are open source now, I wish that they would also work on an IDE for Mac and Linux. They’re about to retire the Mac preview VS, which didn’t compare to the Windows counterpart, but still usable.
C# is used by every medium to large French company as an alternative to C++. How is it not popular?
OP didn’t ask for unpopular languages but for languages you want to be more popular.
I also want C# to be more popular, it’s a fantastic language.
Move to NZ. It’s nearly all c# here.
Haskell
I don’t know if no one mentioned Julia because it’s considered popular enough or because it’s really not popular but… Julia for sure.
I was looking for this comment. It’s unfortunate that Julia basically dies in the shadows of python, in some sense it’s much more logical, out at least f ing print and division doesn’t change between versions
What are some good use cases for Julia, I really like the language just haven’t found a user for it yet.