okay also:
please don't python for large projects, it's nice but has the same issues even if less obvious.
please don't java, ever. it's like,,, no dont.
please don't javascript, but v8 is cool and efficient, it's just a bad tool.
go is average. i dislike the language and find it very uh well bad but it does the job and does it efficiently enough
please rust, please a lot of rust all the time, we won't ever need anything else when we get more rust done 🦀
@CobaltVelvet what about erlang/elixir?
@gargron i dislike it for shitty reasons like community and syntax and tool names, but it's technically very interesting and using erlang makes it powerful and efficient
@CobaltVelvet @Gargron I use it for my new projects, I didn't notice the community. Will be careful.
@CobaltVelvet the package manager is called Hex tho
@gargron yeah can you imagine naming a package manager "hex" and reserving the "hex" command, without it being like, the ultimate hex editor
i just don't like it. but it doesn't make it bad.
@CobaltVelvet
A hex editor should be named hexed hex ed hex editor
@Gargron
@CobaltVelvet YES PLEASE.
@CobaltVelvet Virtually everything but Python on this list
@Elizafox if you dislike rust you're bad
Then I don't wanna be good
@CobaltVelvet That's okay
That's what everyone who writes rust does.
@Elizafox yeah my ls is in rust and make alternative too
they're just so good, fast and documented, everything in rust is beatifullk
@CobaltVelvet Go’s syntax is designed to be simple enough to hold in one’s head, which also means it has a feature set best suited to programs that similarly fit in your head
@CobaltVelvet a consequence of this is that Go was made obsolete when they released the Bourne shell in 1977
@CobaltVelvet on a serious note, I think Go’s creators are more than capable of designing a good language, they just lost faith in our ability to use advanced features when we collectively ignored all the work they did on plan9, Inferno, etc. in preference to their stuff from the 70s
@CobaltVelvet
Programming languages personified: http://leftoversalad.com/c/015_programmingpeople/
@CobaltVelvet brainfuck for large projects
this doesn't feel complete without php. ahhhh.
php.
- if you have any choice at all:
for anyone that will have to work on it with the most awful tools, choose a terrible framework, maintain its shitty server, patch its vacuous security, get their private data dumped, or see a cryptic error: please don't. there is nothing php is good at except "using an already paid for web hosting that exclusively supports php or worse"
- if not, i'm sorry. good luck.
@CobaltVelvet
Php isn't even intended as a general programming language it's called personal home page.
@Vopo yeah it's literally a perl template processor on steroids
it's like if people implemented a framework in go templates
@CobaltVelvet
I've written my own web app framework in PHP. What language should I port it to?
@woozle really depends on what it needs and what you'd be ready to learn for it
Here's another one: C
I know C++ sucks and was the only alternative for a long time due to the fact that for a long time people were unable to see the word "Objective-C", but even C++ would have been a better option than writing an "object system" using only C macros (I'm looking at GObject, powering GTK+, GNOME, and large percentage of other projects that start with capital G).
@CobaltVelvet I get more security issues for WordPress in PHP than I do for the rest of the packages I look after (C and python) combined.
PHP lets you do some very very bad things. It's also easy to make dumb mistakes like call functions that don't exist.
@CobaltVelvet hmm. I love Rust too, as you probably know. 😁 But there are more concerns a new project has to consider than just memory usage, and I certainly expect to continue choosing Python or Java for some of my new projects in the future.
I'm curious, why do you have such a strong reaction to Java? The VM is orders of magnitude more efficient than most common choices and the language design these days incorporates many of the same lessons Rust does.
@jamey orders of magnitude really? maybe most java developers i have witnessed are just incompetent then
it's just always so awful and excessively heavy in every possible way. desktop apps, web stuff, servers, ... there's one constant : it uses way too much ram and cp
and the dev tools, all bad memories
@CobaltVelvet yeah, there's a big difference between what the language and implementation are capable of, and what "enterprise" code style leads to. IIRC Java ranks consistently near C/C++ in the programming language shootout micro-benchmarks, for example.
@CobaltVelvet what about D, Alice? What do you think about D? Actually whatever your answer is I'll still like D and I'll still like you
@CobaltVelvet Actually Java is changing a lot at all levels and it could be useful just as a virtual machine (Rust on top of Java is a thing possible nowadays, see https://github.com/graalvm/sulong). Python also seems like not a bad option at all for large projects considering stuff such as PyPy and type hints/MyPy.
@espectalll yeah but even as a vm : w h y
why make something that will be inefficient by design when we know better
@CobaltVelvet Because you have to work with potentially infinite combinations of workflows, including dumb computers, dumb installations, dumb users and dumb developers.
@CobaltVelvet Overall, if you can have a single VM as a de-facto standard for abstracting technical details, and use languages on top of it which enforce not making dumb mistakes (like Java or Rust), you could get a pretty solid framework for all needs. Try to optimize the virtual machine as much as possible (OpenJVM is getting pretty decent for desktop and mobile, just like it was already great for servers) and then make it easy to work, hard to make mistakes.
@espectalll what part of this cannot be done at least as easily as a rust crate
@CobaltVelvet Portability, multiple language compatibility (FFIs are not *that* great), isolation by default. The JVM offers all of that.
@espectalll portability: never liked the jvm as a portability examples. it's always an awful experience to get the jvm somewhere. but yeah that's just because the jvm in question is badly done.
compatibility: really? java doesn't add much to that, except what is already based on java. i'd rather emulate it than add a layer :/
isolation: how so?
@CobaltVelvet On portability, I don't think "write once, debug everywhere" applies anymore, especially since most compatibility issues came from old libraries (such as Swing) or Windows-specific issues. I wouldn't blame it on the JVM, but I admit I don't know that well its issues.
On compatibility, you should check out Graal (which is why you can now run Rust on the JVM): http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index.html - it's still WIP, but largely works.
@CobaltVelvet
On isolation, it's much easier to provide it with a VM, since it tries to abstract from the hardware as much as possible. It sandboxes by default and it makes it a lot easier to set permissions, and you can access as easily to tools such as containers as you would with a regular binary. The JVM itself can still be buggy - and while OpenJDK's C code seems pretty reliable, you can also write a JVM in Rust (yes, run Rust in top of a JVM written on Rust - in top of a Rust kernel)
@espectalll but why would you run rust on the jvm
"Performance" -> like rust but slower
"Polyglot" -> i'd tell one to get their shit together. there is *no* good reason to mix all that.
"Interoperability" -> like uhhhh an api
i can't think of *any* use for this that isn't a very convoluted entreprise-grade awful mess that should be avoided at any cost.
@CobaltVelvet Slower performance than native Rust is to be expected - but 1.5x to 2x performance loss is barely noticeable on almost every case, and you gain instead on avoiding bad practices on e.g. shitty corporate environments.
On polyglot, it's really useful for stuff such as scripting support (plugins/extensions) and easily using libraries from one language on the other. You should not randomly mix languages, of course, but that's not something Graal-specific.
@CobaltVelvet And yup, it's mainly for that. Consider those shitty environments are the ones that will use your software the most, and then problems arise.
@CobaltVelvet *hands you a thing she wrote in Erlang*
@CobaltVelvet please good rust docs first, though