Python is probably the top non-systems language for productivity and expressiveness right now if you use type hints.

@CoderSupreme@programming.dev
creator
link
fedilink
English
6
edit-2
1Y

deleted by creator

@foo@programming.dev
link
fedilink
English
31Y

The only thing that will force you to be a good programmer is you.

You have to use 3rd party tools like MyPy.

@fizbin@beehaw.org
link
fedilink
English
21Y

You can always have a CI step that runs mypy on your code.

@sotolf@programming.dev
link
fedilink
English
11Y

I was using python for quite a bit, but don’t like how cumbersome their types are, I really fell in love with nim when I was looking for alternatives, it’s an underdog, but personally I really like the langauge.

nim looks good at a glance. I tend to stick with marketable programming languages so there are so many I don’t know about. I personally think that using the optional strong typing features are enough to make Python a joy to use. But yes, other people’s code can be cumbersome.

@sotolf@programming.dev
link
fedilink
English
11Y

For me it depends on the size, for small stuff like 1000-2000 lines of code that mainly I just work on alone, something like python is okay, if it is something longer, I miss types a lot.

The thing is nim is more than just a typed python, it just works really well, I’ve had a lot of fun with it the two or so years that I’ve used it.

But then again, I have a lot of fun testing out different languages, and don’t care about marketability, since I’m just programming as a hobby, and not as my profession, right now I’m playing around with picolisp, and it’s pretty fun :)

Fun stuff :)

Part of what make Python amazing is pip and everything that’s already been built. For a strongly typed and statically typed language with a large and growing ecosystem I’m drawn to Rust even though I don’t think it’s pretty.

@sotolf@programming.dev
link
fedilink
English
11Y

Aww, the hype got to ya… yeah, seeing it again and again, at least don’t do like everyone else who are starting to shill for the language without even having tried it. I’m just tired of rust activism, so tired.

What you call hype I call a strong and growing ecosystem. ;)

Honestly it’s been fun chatting with you. I think we are sort of opposites. You seem to like hobby languages. I like well used languages. You are tired of hearing about what’s popular. I’m excited about other programmers being excited.

I am curious what turned you off when you were actually using Rust. Or did you mostly lose interest because other people endorse it?

@sotolf@programming.dev
link
fedilink
English
21Y

I was excited by rust, back when it used sigils instead of box and other keywords, it was an exciting language, I had some fun with it, but it wasn’t ready yet, so I went having fun with some of the languages in its family (ocaml, F#) And when I went back to rust some years ago to write a little tool for myself (https://codeberg.org/sotolf/tapet-rust) to try it out, and it was really cumbersome, and ended up rather slow. I really don’t like the rust syntax, and yes, that is kind of shallow, but there are so many bad choices, like a ; not being there rather than a return, it just doesn’t work for me. Error handling is decent, just that it’s syntactically cumbersome unless you use a package like anyerror, there are packages, so many packages, and what you wanted to make that is just a small tool now has 2 Gb + of build artifacts. I later found out about nim, and rewrote the tool in it, and got a more stable faster tool in a 3rd less code (https://codeberg.org/sotolf/tapet-nim) And the way to work in nim just fits me so much better.

The thing about the rust pushing people (They are funnily enough mostly people that haven’t really used it for much yet, but went into the hype) is not that they are exited about a language, sure I can get that, it’s the way they are pushing it, they talk down about other languages, demand people rewriting things in a language they are exited about, I don’t like the slow compilation and the huge stuff. It’s just not me. Don’t get me wrong I know it’s a good language, just too low level for what I (and most people really) need and it getting pushed for places where it’s not really suited, I don’t really think it’s a good thing. There is also this push for cleverness in their libraries and code, and cleverness in code is always a red flag to me. So it’s not you rust, it’s me.

@CoderSupreme@programming.dev
creator
link
fedilink
English
2
edit-2
1Y

deleted by creator

@CoderSupreme@programming.dev
creator
link
fedilink
English
-9
edit-2
1Y

deleted by creator

@CatPoop@lemmy.world
link
fedilink
English
91Y

For my sins I spend a significant part of my time maintaining smalltalk, and it most definitely is not productive.

The syntax is ugly and cumbersome when you start chaining messages. Any advantages the evangelists tout are available in modern languages without the baggage of this dead one.

Today if you want something ‘simple, flexible, interactive’ (interpreted, GC and likely faster) python would almost certainly be a better choice.

@Mikina@programming.dev
link
fedilink
English
31Y

I’ve had the “pleasure” of having to work with Pharo, which is AFAIK based on Smalltalk, and it was one of the most frustrating experiences I ever had with a language. It was a few years ago so the details are blurry, but as far as I remember the idea was that the whole IDE is a basically a VM coded in Pharo that you can edit on the fly, and it was just a mess and super strange to work with.

On the other hand, it was a great learning experience because the OOP smalltalk syntax and way of thinking about your code is different enough to be worth experiencing. But I still can’t imagine a task for which using Pharo would be a good idea, or better than literally any other language.

@CoderSupreme@programming.dev
creator
link
fedilink
English
13
edit-2
1Y

deleted by creator

Silver Golden
link
fedilink
English
61Y

Out of curiosity why are you replying to yerself so many times?

Could have included it all within yer original post.

@CoderSupreme@programming.dev
creator
link
fedilink
English
-1
edit-2
1Y

deleted by creator

Silver Golden
link
fedilink
English
41Y

Adding a link to a poll would have been far easier/expandable/honest

@solrize@lemmy.world
link
fedilink
English
14
edit-2
1Y

Opinions will be all over the place, and it will depend on your areas of interest, your priorities as a developer, whether you’re willing to climb a steep learning curve before you can do anything useful, etc. If you are just getting started, the usual answer until recently has been start with Python and branch out from there. Your own preferences will make themselves known to you after a while.

@KijanaBarubaru@lemm.ee
link
fedilink
English
61Y

Agreed, this question will never have a straight answer. I’d add that if your interest is web development, a good first language would be JavaScript. Python is great too.

@solrize@lemmy.world
link
fedilink
English
41Y

Web development is such a horrible quagmire these days that imho it’s best to start in another area.

@solrize@lemmy.world
link
fedilink
English
21Y

Let me adjust a little bit: front end web dev is a quagmire. If you want to get involved with web dev, start on the back end. If you move to the front end later, it will be with more systems understanding which will be useful.

I’ll say something even more extreme: before getting involved with web front ends, work on some video games with game devs. The know how to make interfaces responsive, unlike most of the slow crap you see on the web. If you can make front ends that are capable and fast, you will be a god among devs.

@abhibeckert@lemmy.world
link
fedilink
English
2
edit-2
1Y

When’s the last time you saw a video game that launches in under 100 milliseconds? I bet it was a game written for the web.

At it’s best, the web is very fast.

@qwertyasdef@programming.dev
link
fedilink
English
1
edit-2
1Y

What web games are you playing? Do you count the time it takes to load the web page? I can’t think of a single game that loads so fast, web or otherwise. agar.io is super slow and bloated, hanab.cards takes about half a second to make a room, candybox2.github.io comes close but the network tab reports 128 ms to download the javascript.

@guacho@lemmy.world
link
fedilink
English
571Y

The question could be changed to: “what’s your favorite programming language?”

I would said that this is a subjective question, as everyone has different opinions in expressiveness and design, and the productivity also depends in your experience.

On my case, this language would be Ruby, as that’s where I feel at home.

@zlatko@programming.dev
link
fedilink
English
61Y

I largely agree with this statement. I think the original question is very widely scoped. It’s like asking, “what’s the best tool for hammering nails, chopping wood, cutting wood, cutting glass, polishing floors, and building skyscrapers, and the tool is used by all builders anywhere and any time in the human history?” Different people, different skills, different problems.

key
link
fedilink
English
3
edit-2
1Y

I know people who would claim clojure for productivity and expressiveness because they have to type fewer characters. Hellish option for real world engineering however.

You could argue shell or Javascript for productivity because if you give someone a new computer and tell them to write hello world, you’ll get it done fastest in one of those. If you ignore that silly hypothetical and give them a setup device then python or javascript are good for low time to productivity for any random developer a hiring manager might bring in. If you consider productivity from a long-term velocity rather than onboard speed perspective then code-base familiarity and tech debt are the big factors more than language itself. Languages that play well with older languages but eliminate headaches (like Kotlin for a Java based stack) are going to be the best options for productivity in a real world sense. If you just care about typing the fewest characters then perl or APL.

Design is going to be totally subjective. Go is popular. Functional zealots love Haskell or lisp for minimalism. Someone else mentioned Scala which I’d tend towards myself. Even Coffeescript (Rip) had a certain profane elegance.

Plain Old Human language. Remember comments? Remember moments when things get very complicated and docs and comments become your only help?

That mostly because none of the languages is the best. Some of them better in some places and worst in others.

For example: Java. Amazing library range, enterprise support and feature and community reach. Java also fail in shambles when you need a low level or guaranteed performance. Erlang. Robust distributed and fault tolerant. Now try to create something that is not network, agent oriented and should work locally only.

Every language has a niche. Look at javascript. JS is only exist because of it’s niche. It wasn’t good as a language, but it was the only one viable solution in it’s niche.

Same with assembly. Nobody sane would use assembly if it wasn’t that close to the metal.

There are time tested solution in every niche and it is wise to know why they still there and what drives them.

@sip@programming.dev
link
fedilink
English
21Y

I think you took more effort into answering the “other side” of his question.

You are absolutely right. At first I just wanted to add my favorite language to the bunch, but then I realised that this isn’t really answering anything, because the use case matters most.

You can use any language to programm solution to any problem in any environment. And given that here we have many developers fixing many different problems we will end with just a collection of all possible languages and problem/solution permutation.

Language doesn’t matter. Solution and solution logic matter. And most times we are using a Plain Human Language to crate a solution and then encode it.

snowe
mod
link
fedilink
English
111Y

Ruby and Python both meet your description quite well. Ruby a bit more so than Python. Ruby refers to the style as Ruby Prose, because it’s meant to be incredibly readable, expressive, and easy to write. I wouldn’t say you should write big code bases in it, mostly because both Ruby and Python are dynamic languages. They both start failing the larger and larger the projects get, not because of speed, but because of typing.

Ruby also has a massive standard library. Things like .permutations() are even included, making Ruby incredibly readable for complex stuff.

MinusPi (she/they)
link
fedilink
English
01Y

I honestly love everything about Typescript with Deno. TS with Node is a massive headache but with Deno it just works out of the box, and it really lets TS shine.

@quavan@programming.dev
link
fedilink
English
51Y

If you are creating a distributed system, then Erlang/Elixir is probably what will be the most productive and expressive language, bar none. Outside of that, ReScript has a lot of potential and Ocaml can be nice if you like that syntax instead.

ᴄʜᴏᴋɪᴅᴀʀ
link
fedilink
English
9
edit-2
1Y

A few years ago, I would’ve said Ruby. Nowadays, it has to be Python - it’s simple, readable, clean and more performant than ever. The fact that is widely adopted and used in a wide range of industries probably helps a lot.

The only answers you are getting simply reflect popularity.

To answer your question, I think F# is quite good. I use C# more often but F# is more expressive.

CIAvash
link
fedilink
English
01Y
@Mikina@programming.dev
link
fedilink
English
11Y

I’ve always just used Python for smaller tasks, mainly because of it’s popularity - which means it’s easy to quickly find example code or library for virtually any usecase you may have for such a script.

But I’ve lately started using Powershell a little bit more, because it just works on any Windows machine and you don’t need to install anything. And for apps that are more involved than a quick automation script or throwaway calculation, I just go with C# since that’s what I’m used to the most.

Create a post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



  • 1 user online
  • 1 user / day
  • 1 user / week
  • 1 user / month
  • 1 user / 6 months
  • 1 subscriber
  • 1.21K Posts
  • 17.8K Comments
  • Modlog