What programming language/s do you know?


Other urls found in this thread:


Why the fuck can't you just learn it now? If you can already program in one language then it takes at most 1 month at most if you're an absolute drooling brainlet to learn another.

I wish I knew how to program.

Do you really want to know or is this just another three letter agency data collection thread?

shit macros
common lisp, but i don't really care.


Know, like:
x86 assembly, C, C++

Know, tolerate:
C#, Java, Python, javascript

Know, fucking garbage:
PHP, Perl, shellscript, M4

There's nothing I haven't learned that I'd want to. There are plenty of languages out there but using a pile of them is stupid. I can do almost everything with a mix of C, C++, and Python, and where I can't use those, C#, Java, or javascript are usable. The last category is only for compatibility and everything in it is dogshit. If a miracle occurs and 10 years from now they've made rust usable I'd learn rust but I don't expect it will ever be usable.

I hate shellscript the most as it's impossible (without horrific constructs that look CS Grad tier) to write non-trivial and correct shellscript that properly handles errors. I write beautiful C and C++ and then I feel like I'm forced to shit on the street when dragged into shellscript. I'd like to replace all the things that have to be shellscript with Python but it's not always viable. Non-trivial Python has a stupidly huge startup time far longer than the entire runtime of most shellscripts, it requires a lot of space for the interpreter, and it requires a pretty thick environment to run in. E.g., I'd like to replace all the complicated and fragile initramfs script I have for embedded development with Python but I'd need to stuff probably 100M of garbage into it to run it.

Turn back time would be pretty neat if you go to a university for 4 years just to learn how to program in Java and C++.

This and shit unicode support (either you use wchar_t and your string are 4 times heavier even if it's ASCII or you roll your own UTF-8 stuff).

wew, 10/10 quality thread

Go back.

Why people seem to hate so much Reddit? I mean, I know that is a hive mind full of libtards and SJW but there is actually very good info in there and very good NSFW subs, you just need to avoid progressive subs and you will be fine.



I like both of languages that I know.

Only downside of those languages is that bad programmers are constantly whining about them.

If I had to choose some language (other than JS and Rust) to learn then I would learn Java.



Java, SQL, basic notions of Python.
SQL, yes. Java not so much. Python is awesome from what I've seen so far.
SQL is fine. Java has horrible verbose and comes with all of the problems OOP has and even expand on them. Python is much better in this aspect, but it is still mostly OOP.
C, C++, Python or Go.
Rust. Tried it once and hated it. Plus shitty community.

Since this thread is garbage I guess I can ask a stupid meta question here instead of elsewhere:

If there exists a Daily Programming Thread on a board half of whose threads are about programming, does that mean I seek small advice about programming in the DPT or in a new thread?

what's wrong with rust?

No compile time function evaluation.
No type level integers.
There is no safe function to make a array from a slice in std/core.
std doesn't expose a way to access the os csprng.
The time and string modules in std are painfully limited.
I wouldn't.
Ada and Idris


Oh shit. I read that as "what is your favourite programming language".
I actually know Rust, Java, C# and Python. Also a little bit of Red and Erlang.

C, C++, Java, Python, JS
Really enjoy.
Not as comfortable and fucking long compiles, but otherwise eh.
Why did G*d think we deserved this?
Good for non-performance critical, text processing/GUI programs. Really good for scientific number crunching with NumPy because it has really nice abstractions over C.
I write 50 lines of it for some site and then chmod 400 it.
The lack of some newer programming constructs is annoying, but I can deal with it.
Compile times. The encapsulation is horrible.
The whitespace rules are cancer.
The DOM is a messy cruft and ES6 does jackshit to fix it. Is it so hard to make incompatible changes and have them running with
and falling back to legacy if the statement not there? Just show "bls ubbgrade ur browser :DDDDdd" if no es7.
Rust. Ironically, the shilling here steers me away even more.
I want to learn something functional like Haskell sometime. I'm really busy nowadays so no time for self-improvement, but when I do get time I plan to.

Isn't there libicu? Am I misremembering that there's a C library for unicode? Or is that shit as well?

Why are you posting this faggot? He can't even work with rust well, he's there just for social bullshit like talking to people.

You can roll your own fundamental unicode library quick. But yes there are fully standard unicode libraries for C. Where do you think the other languages get theirs from?

Mostly C, and a tid bit of a bunch of other languages such as Common Lisp, Scheme, FORTH, /bin/sh (and descendants), Perl, Ruby...
C? Yes I actually do quite a bit, even though nobody seems to these days
Lots of them, most arguments against C are valid and there's no way around it
Common Lisp or Forth
None, but if I knew PHP I would probably hate it
Awk, APL, and MIPS assembly

SHELL=bashbench: hello hello.fs hello.nims hello.pl time for x in {1..500}; do ./hello; done > /dev/null time for x in {1..500}; do ./hello.fs; done > /dev/null time for x in {1..500}; do ./hello.nims; done > /dev/null time for x in {1..500}; do ./hello.pl; done > /dev/null time for x in {1..500}; do sfk include hello.fs; done > /dev/nullclean: rm -fv hello hello.nim hello.fs hello.nims hello.pl hello.fs rm -rfv nimcachehello: hello.nim nim c $ [email protected]: echo '#! /usr/bin/env gforth' > [email protected] echo '.( Hello, world!) cr bye' >> [email protected] chmod +x [email protected]: echo '#! /usr/bin/env perl' > [email protected] echo 'print "Hello, world!\n"' >> [email protected] chmod +x [email protected]: echo '#! /usr/bin/env nim' > [email protected] echo 'echo "Hello, world!"' >> [email protected] chmod +x [email protected] from output of 'make'time for x in {1..500}; do ./hello; done > /dev/nullreal 0m0.202suser 0m0.176ssys 0m0.035stime for x in {1..500}; do ./hello.fs; done > /dev/nullreal 0m1.259suser 0m1.012ssys 0m0.256stime for x in {1..500}; do ./hello.nims; done > /dev/nullreal 0m11.250suser 0m10.300ssys 0m0.953stime for x in {1..500}; do ./hello.pl; done > /dev/nullreal 0m0.528suser 0m0.423ssys 0m0.114stime for x in {1..500}; do sfk include hello.fs; done > /dev/nullreal 0m0.214suser 0m0.188ssys 0m0.037soh nim. You have this scripting option, but it's 21 times slower than a scripting language and it also can't take advantage of nim libraries for SQLite or yaml.

You're really just timing startup there. Unless all your programs are one-liners it's not realistic.

you use timers INSIDE the code not the "time" command you absolute fuckface

A typical sysadmin oneliner actually isn't repeated like that. even a cronjob only runs as often as once every minute. Overhead tests like that are more relevant to CGI.
Without json/yaml/sqlite there's no point in rewriting longer scripts in NimScript though. It's my fault for getting excited. There are so few decent languages that can run 'from source'.

I'm not interested in timing the fucking syscall.

Great, they'll love you back in 1996 when that was last relevant.
Ever since then we've had things like fastcgi and don't start an interpreter every time we want to serve a request. Well, some people do, but we make fun of them because they're awful.

$ strace sfk include hello.fsexecve("/home/user/bin/sfk", ["sfk", "include", "hello.fs"], [/* 67 vars */]) = 0strace: [ Process PID=7650 runs in 32 bit mode. ]brk(NULL) = 0xa778000access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7f56000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3fstat64(3, {st_mode=S_IFREG|0644, st_size=115999, ...}) = 0mmap2(NULL, 115999, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf7f39000close(3) = 0access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)openat(AT_FDCWD, "/lib/i386-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\v\0\0004\0\0\0"..., 512) = 512fstat64(3, {st_mode=S_IFREG|0644, st_size=13840, ...}) = 0mmap2(NULL, 16500, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7f34000mmap2(0xf7f37000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xf7f37000close(3) = 0access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)openat(AT_FDCWD, "/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\213\1\0004\0\0\0"..., 512) = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=1918740, ...}) = 0mmap2(NULL, 1923612, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7d5e000mprotect(0xf7f2d000, 4096, PROT_NONE) = 0mmap2(0xf7f2e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1cf000) = 0xf7f2e000mmap2(0xf7f31000, 10780, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7f31000close(3) = 0mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7d5c000set_thread_area({entry_number:-1, base_addr:0xf7d5c700, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 (entry_number:12)mprotect(0xf7f2e000, 8192, PROT_READ) = 0mprotect(0xf7f37000, 4096, PROT_READ) = 0mprotect(0xf7f82000, 4096, PROT_READ) = 0munmap(0xf7f39000, 115999) = 0brk(NULL) = 0xa778000brk(0xa799000) = 0xa799000brk(0xa79a000) = 0xa79a000rt_sigaction(SIGILL, {sa_handler=0x8050417, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0rt_sigaction(SIGFPE, {sa_handler=0x8050417, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0rt_sigaction(SIGSEGV, {sa_handler=0x8050417, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0rt_sigaction(SIGINT, {sa_handler=0x8050417, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0readlink("/proc/self/exe", "/home/user/SwiftForth/bin/li"..., 256) = 39ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 opost isig -icanon -echo ...}) = 0stat64("include", 0xffbef4a0) = -1 ENOENT (No such file or directory)stat64("hello.fs", {st_mode=S_IFREG|0755, st_size=48, ...}) = 0getcwd("/home/user/bench/hello", 260) = 27openat(AT_FDCWD, "/home/user/bench/hello/hello.fs", O_RDONLY) = 3_llseek(3, 0, [0], SEEK_CUR) = 0_llseek(3, 0, [48], SEEK_END) = 0_llseek(3, 0, [0], SEEK_SET) = 0mmap2(NULL, 48, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xf7f55000write(1, "Hello, world!", 13Hello, world!) = 13write(1, "\n", 1) = 1write(1, "\n", 1) = 1ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 opost isig icanon echo ...}) = 0write(1, "\33", 1) = 1write(1, "[", 1[) = 1write(1, "0", 10) = 1write(1, "m", 1m) = 1exit_group(0) = ?+++ exited with 0 +++vs.$ strace ./hello.nimsyour post is too longsfk doesn't even buffer and it's 52 times faster simply for all the shit it doesn't do. That's a lot of shit. strace it yourself.

t. absolutely fucking clueless
I remember 1996 well. CGI was the bad old way to do things back then, too, according to people just as clueless as you. These were a bunch of Perl programmers who just couldn't believe that people were using PHP.

(The amazing thing about FastCGI is that people actually resurrected the Spec after it was down for at least a year: fastcgi-archives.github.io/FastCGI_Specification.html
They should've just put a nice epitaph on it: "This was a completely pointless reinvention of HTTP itself. If you don't know how to implement it today, please read the HTTP RFC instead. FastCGI has, at best, some psychological value in that you don't have to explain why you have *two* webservers.")

Were you even born yet? I was using threaded Zeus and fastcgi back then and didn't have these problems. Sorry to hear that you were still shitting the bed 20 YEARS after it was a solved problem.


Lua, C, Python, C++, JS
In that order

I love Lua and C, the others I could do without.

The only thing I don't like about lua is 1-indexed arrays, everything else is perfect.

Oh and the standard inline documentation tool sucks. The small community also kinda sucks, but I'm pretty sure if lua were any bigger it would be JS 2.0

I'm pretty happy with my choices.

JS god damn my browser isn't an OS just make a fucking thick client in QT or something.

I downloaded coq the other day, need to find some time to play with it.

Know well: C, C++, VHDL
Know somewhat: Scheme, some x86 assembly, Java, Javascript/Typescript, SQL
Like: C, C++, Scheme, VHDL
Meh: Javascript/Typescript, SQL
Fucking despise: Java
C++: Some weird little corners here and there (e.g. dependent types and the "typename" keyword). Compile time meta-programming still has room for improvement (but at least it exists).
VHDL: Could afford to be a little less verbose sometimes (while keeping the same semantics). Not really a problem with the language itself, but support by FPGA synthetizers could be better (Xilinx pls).
Javascript/Typescript: Meh. My view of it is probably tainted by the annoying frameworks and libraries I had to use with it.
SQL: I really hate the syntax. It's like a big mess of amorphous, forgettable pseudo-english forms.
Java: It's like some kind of slow, sluggish bootleg C++ for retarded Enterprise™ code monkeys. The language tries its hardest to railroad you into writing appalling long-winded shitcode.
I don't see why I would need to turn back time to learn a new language.
Java, though I've seen and heard bad things about other languages like PHP, Rust and COBOL.
Python, because it's so common these days?
Perl 6, for lols?
Bash scripts could make my life easier.
Also, I really think I should practice writing x86 assembly.

just fucking stop. every language has its own use. areas it's good in over others. there is no one language that's good for everything.

Holla Forums pls go
your language-universal-utilitarianism and moral egalitarianism is sick and destructive to both discourse and the advancement of programmerkind.

What you wrote is bologna.
You aren't discerning between marking up web pages, or scripting behavior for software, or controlling hardware.
There are very real limitations to what languages can be used for each of those situations.
Some languages were honestly created only to provide a benefit of one company over its competitors, and one could argue that this was a waste of human labor.

I'm learning C++ at college.

It's pretty good, but the C parts of the language are the best part.

OOP is fucking hideous. I can't understand why anyone would think that adding OOP would be an improvement over normal C.

C. Maybe Go, but I don't like google being balls deep inside.

I haven't used it in a large capacity yet, but as far as I can see, Java is god awful.

Additionally Java or Kotlin, and a web design language.

deceiving Julio's sensor's woe's venue nuisance's rescued Eugenia romantics clannish Chandragupta glint's trapeze's darling altruists dictatorships tablelands Bollywood's vector wishbone Kochab's Austin's marlin cobweb's trickle's mollusc's Deadhead's gables spotlight's poltroon amigos hooligan's housed unchanging refill's minicam ramp's outdone dermatologists oared expunged Doppler ciders homeliest hazy evince thruway rowing's arranged cosmology's disproportion escutcheons qualifiers swopped defeat's ten's duodenal musical psyched clings clicks encyclopaedias desirable trousseau dilemma's Pueblo leathery instrumentalist Greta Duracell powders safer materialized savorier categorized bragged Ayala fetching sniping antennae determinism decimates sparely gregariousness's skywriters sunfishes hens husk wishful recapitulates charioteers sombre Cuba imprudent lumbered burrs Harrods narratives December jewellers situating patting bee hypocritically highbrows continentals destructs Jimenez's outstation's furies uncouples Bandung's waviness squadron Noah ventricle misinterprets cueing éclat's Espinoza AI's servant's wrath terabyte's delinquents hijackers blackest preachy Guinea's pitting developing tings explosive yaps cord indexing stiffer Cheetos lynches Asmara autopsying repute annealed florists malingering copier regally jumbled redefinition landslides beagle pettifogged steadfastness's dormancy pleasings slackest tomb's wickedest staffing adulteress's humanoid railroaded bacteriology's reconstitute reportage glimpse otherworldly paraplegic arousal's refrigerates hyacinth's cruel insoles McCarthyism's helplessly beer handlers midtown advocated he clambake premiered taxied rubbishy splicing disquiet vanquish lumberjack wastepaper otter Hebrew's shapelessness precises Muhammadans speckle Edmund's tramped camcorder's paprika's precept's reservation percolated glut's jocose domineers hefted rancid Vern D restructuring's outset manufacturer multinational's singletons booth's unfamiliarity geegaws Erwin prelude's Moreno Norseman's stringed apparelling navigability's licensee Donizetti exploration ambush firmest healthier rescission Brock indigo's tonsils egos nationalities voltages suckles chastisement's Dodoma denominates entrances brooding peeled bibliography expel performer's draftee Mississauga peerages obliqueness satrap's brawler's wanderlusts

You think you're clever, but intel agencies only pay attention to posts with dubs. They filter other shit out--don't even see it.

hogwash's ticketing Czechs regulators clomped vacations diabolic Gamow's expedite reveille's hayed plankton's lisps astrophysics's Adhara's Babar's disposables CRT's sure disoriented Tomlin's diminishing insupportable maneuverable masterminding broadside Oberlin's vectors mariner waterfront extraction's pantry's unfettered stylus blueprint unaccustomed wherefores Janice expediters pauperizing cosignatories exactly piebald Tami's kettle's outgoing havoc's medals splinting Rodrigo's Minsky's Burger USSR's pyrotechnics's unravelled subcontractor transaction's medication questions decade's porter speeders they rectifiers Karen release sunburning fiscals veggie's storefront pimp's unsealing scarf undertow brainchild unimpeachable gash protozoan peg's Loafer crystal iffy tapered canes alchemist Berenice occasions In hazardous Salvadorian oleaginous trusted plows ruggedly flycatchers agar's asterisk camel's stealth's telephony do dabbing seniority's disobeying disobliges debater villainy lordly philters reuse eighteenth blurrier deceive sleepwalker's slighting compounded generating bud conception's confiding dime's practicability's stranglehold eggshell gawks maxing Bogart's cringed Swedish numberless sufferance's disgraceful indications bureaucrat forum's beetles jested plasters dermatology's relegated Price testis's complexes disassociating seacoast's hafnium's syllabic bag's lapwing binge's disappoint over's deathbeds spine's mastoid peacemakers Rostov's Dubrovnik Tweed Chickasaw kicky offended chamber's roguery warthog's opiates vibraphone Terra collages genitive sarsaparillas henpecking flamencos Pôrto extruded isolationist's ebb tastes human's commendation craven's womanizer's sacrosanct Arnold barrack's bucked blazon's bobbed piggy's skateboarding's sentry's Kenya emissions impetigo's noses digitalis Lucio's clerics Karl's NASCAR altogether pumpernickel's baleful whiplash's manse admonishments devalues warming victimizes lithographed Hollerith's shuttlecocked Boer antiphonals humbly banking Zara's fatuous

The format itself is the problem, reddit agreeing with your politics doesn't make it redeemable at all. The issue is the upvote-downvote system, and persistent user identities. The culture it breeds is pure cancer and should not be tolerated.

On an imageboard, nobody can hide your post so the other users cant see it. And nobody can go into your profile and make comments about your persistent identity. This creates a much higher quality of discussion and quality of poster: nobody has anything to lose from being disagreed with, since it has no repercussions outside of the thread that the disagreement occurs in. And nobody can simply vote to hide things they don't like, so that only the most conformist comments can be seen.

Compare that to Reddit, where everyone else has to walk on eggshells when posting.


tbh just plain Apache, CGI, and Perl was most common in the 90's.

C, C++, Racket

C, eh
C++, eeeeeeh
Racket, it's /comfy/

C, it's fine for simple work, i don't really do much more complex stuff
C++, just werks (usually)
Racket, yeah

C, you have to think in squares
C++, tumourous kludge
Racket, can't really do complex stuff that you can do with the two languages above

Python. I never broached that section of programming.

Java, it's a retarded coffee language.

Python for usefulness, haskell for IQ.

It was certainly most common, but the better projects had already moved beyond all that. Some took the threads + events + fastcgi route (which is close to what "cutting edge" is today in webdevland, which I still find funny), others went with C. eBay is one of the companies that went with C for their web backend.

Python 3, Python 2, Kotlin, Java, Rust, C, SQL, some regex kung fu
used to program in some others but did not use them recently, so no point mentioning. Anything that isn't total shit can be learned quickly.

mostly yes. Java is passable, C sucks but it's sometimes beneficial to know it.

there's no point in complaining

Languages are easy so it can be done now if needed. I would learn some hard math instead.

Javascript, PHP, C++

Any which is useful for specific goal, unless it's total crap like C++ or Javascript

html, php, pascal
the same ones
c++ annoyed me when I tried it
none, the ones I know do everything I need

Python, Ruby, Scheme, sh

Python is neat but I don't think its sustainable long-term for huge applications.

Scheme is a meme

I only know ruby in the context of metasploit framework, and it's pretty good there. But I know it has a lot of issues in the other areas it's commonly used (i.e. web)

shell scripting is a nightmare system administrators have forced upon themselves. It's alright though.



C/C++ or maybe Rust. I'm a security pro so I'm more concerned about understanding low level stuff for bug hunting and exploit writing than actually producing anything of value.

It's not necessarily a bad language or the wrong choice, but Javascript objectively has plenty to complain about. If you look at additions in recent ECMAscript standards half of them are attempts to compensate for terrible older design decisions without losing compatibility.

x86_64, C, C++, some Python, some MIT scheme (which I loved), Haskell, some js.
I love all but python and js
x86_64 can be a bitch if you want to make non-trivial, or sometimes trivial, stuff in it
C with templates/overloading (and nothing else) would be useful, but I'm not sure if this is a good complaint (you can always use void*, but it is fucky, and having one function for each type or such hacks is also fucky). I like manual memory management and avoiding memory leaks, tho. It makes you a good programmer.
C++ syntax can sometimes be awfully horrible (I once had to do a thing with iterators on a structure or something like that, it was needlessly horrible), and the language can feel a little bloated at times. Having OOP tacked onto C is also fucky.
Python isn't really good, but it works for quick scripts, especially with numpy etc. Whitespace rules can be a bitch for no reason. Worst of all is if it's a script two people with different editors/indenting rules are touching. It's a language made for the tabs vs. spaces debate.
Scheme is beautiful, but I haven't learned that much
Haskell is neat. Syntax can be ugly, tho, and making "real" programs isn't as easy as with other languages
JS I haven't learned that much yet to critique. Commuity sucks, tho, and floating point for integers, etc. etc. but that's preaching to the choir here.
None, I like having learned what I learned and feel it gives me choice, plus I can always keep on learning. Maybe I'd have learned C before C++.
JS, but only because of what's done with it
RISC V asm, more MIT scheme, prolog, forth, probably some perl

oh, I forgot, python annoys me with its fucking indentation

I will indent however the fuck I want, fuck off

bro SSE saves lives
you wanna know whats really a bitch and just plain fucking stupid, using SSE with 32bit; i tried doing that before dont abuse stimulants

Oh, and python is awesome; just forget about the whole v2 & v3 thing like the Germans did with the holocaust.
You will get many SLOC as a hack for the indent bs. Gonna have to mash tab 5 times; just def a new function, people not running at 1920x1080 will thank you.
All-in-all, if you wanna prototype or just implement an idea you go with python.
but perl is still better

Why not? Performance, or other reasons?

It sounds weird, and I have to say I really like python don't get me wrong.

I think Python gives individual programmers too much flexibility to feel their way to a lazy solution. Like over a massive application with many developers contributing code from all over the place there's too much opportunity for a developer to just make their own decision about how to do shit and shoot everyone in the foot.

Java, which I hate a lot, I can at least recognize forces developers to program in a way that makes it harder to do shit like use a bunch of garbage list comps that nobody can read but still are somehow valid and it follows the style guide and is 'pythonic'.

Like if you want to do a huge enterprise project it's pretty much C++ (for performance) or Java (for "enterprise business logic" as far as I'm concerned. And fuck me I hate Java. C++ not so much, I actually like it quite a bit but that's because most of the light C++ programming I've done looks just like C witj objects but only sometimes anyway.

Also I don't get the weird meme about python indentation being forced on you. Like lets be real, if you're following any guidance from remotely modern materials (K&R, Code Complete, Writing Secure Code, Bjarne's Book, Gang of Four, SICP, etc etc.) you'll be indenting your python like you indent your C or whatever. Like, you can pick the indent level and do visual alignments with spaces and as long as you're consistent the interpreter doesn't care.

Shit I forgot to close a paren and now my whole post is being interpreted as garbage.

c++, c#, Python, PHP, Javascript

C++ is a decent middle-level language, PHP isn't *that* bad, JS makes me want to murder.

Can you give some examples of garbage list comps? I'm probably guilty of this, I love list/dict comps and don't mind nesting them. They seem perfectly understandable if you indent properly.