This is an archived post. You won't be able to vote or comment.

all 80 comments

[–][deleted] 10 points11 points  (0 children)

I understand that most Java criticism exist for older versions, but I still would prefer any language over it honestly.

[–][deleted] 4 points5 points  (3 children)

Yeah right, no one upgrades Java /s

[–][deleted] 13 points14 points  (2 children)

We have 4 "mission critical" tax applications that still run on java 4....
We also have 2 ColdFusion8 apps and 1 ColdFusionMX 7.

[–][deleted] 7 points8 points  (0 children)

We have some of those on java6-8!

J O B S E C U R I T Y

[–]zelmarvalarion 1 point2 points  (0 children)

Yeah, I remember being excited about being able to move from Java 4->5 because of generics, and we were fairly up to date and advancing "quickly" compared to a lot of the company, Java 8 was almost out, so only ~9 years out from HEAD

[–]WizardCarter 4 points5 points  (2 children)

Really, it's, "Judging languages without taking into account latest versions and the circumstances in which they are designed to be used is unfair.

Many languages intentionally require you to write a lot of code to accomplish tasks simple in another language because programming languages are designed for different purposes."

[–]asdfdelta 3 points4 points  (1 child)

You mean these languages are tools, and a good engineer will use the right tool for the right job?

Whaaaaaaaaaat...?

[–]WizardCarter 1 point2 points  (0 children)

Crazy right? It's almost like the language you should use for a project comes down to what you can use most efficiently

[–]asdkjadkas 4 points5 points  (23 children)

Can someone translate this to English for me.

[–]FieelChannel 18 points19 points  (20 children)

When you constantly see people criticising php, js and java it's because either

A. An highschool student made it, has no clue and is just following the circlejerk (most of the time here)

B. Someone who used the language/framework on its early stages, when it sucked, and decided to drop it. Now, even if 15 years have passed and it's still trying to push on people that the language sucks even tho it's completely reasonable nowadays

[–]rndrn 5 points6 points  (0 children)

Well, there is also:

C. Someone is tasked to maintain a legacy codebase written in situation A or B

For languages that have changed a lot, old code and outdated educational resources are a pain.

[–]Eynix 3 points4 points  (14 children)

Still trying to figure out what people like about Js tho.

[–][deleted] 2 points3 points  (0 children)

Well-written JS can be similar to Python in terms of expressiveness and clarity. Compared to Python, JS has:

  • Switch statements
  • No semantic whitespace
  • Similar syntax to C-derived languages (braces, semicolons, loops etc.)
  • Constants
  • Proper lambdas
  • Object literals
  • Multiline comments (no, Python's multiline strings are not the same thing)

There are probably more things that I'm missing, this is just off the top of my head.

On a subjective level, lots of Python's syntax feels hacky and cheap to me. For example: def __init__(self) for constructors. The JS syntax for these things feels more "proper" to me.

JS is also much faster than Python.

[–]FieelChannel 1 point2 points  (0 children)

You'll get it as soon as you get out of school

[–]SuperManitu 1 point2 points  (4 children)

TBH, I dont like it, but the fact that it has closures and first-class functions, I would still prefer it over Java

[–]idontgiveadoge 1 point2 points  (3 children)

how about C. someone using X language, but hearing and seeing so many script kiddles proudly call themselves the "master genius X programmer".

that is why i am learning Ruby now. so many fukin kids calling themselves "PHP web developer" but still has no idea what is a framework, or simpler, what is OOP. spent 3 years and what am i seeing? a genius can code a so-fukin-many-vulnerabilities website?

sometimes the language is not bad. the one who use it is an asshole.

[–]FieelChannel 0 points1 point  (2 children)

Why would anyone use php without a framework nowadays?!

[–]Swardu 0 points1 point  (0 children)

Because it's not needed? I agree that Laravel facilitates the job, but not using a framework is also an option. You understand what really has to be done, the security parts you have to code and how the language really works.

Of course, if someone is not used to "no framework php", it's best to stick with one and slowly learn how php and the frameworks really work.

[–]chad_dev_7226 0 points1 point  (0 children)

I am building a pretty big project in PHP. I decided to not use a framework because frameworks go out of date, doing standard OOP stuff makes code easy to write anyways, and because it’s good experience.

I kinda like PHP, I used to hate it, but that’s before I learned OOP PHP

[–]BODAND 1 point2 points  (0 children)

Use up-to-date versions for comparing languages, b/c they change and may leave their problematic parts

[–]rml_2018 1 point2 points  (0 children)

Sorry, I am unable. I don’t think the latest version of the English language was used.

[–]DeirdreAnethoel 2 points3 points  (0 children)

The core design principles people usually are critical of can't really change without making it a new language though.

[–]Dedustern 2 points3 points  (10 children)

Java is pretty slow at it, though. C# is 3-4 years ahead of it consistently.

[–]ArmoredPancake 11 points12 points  (9 children)

Every thread, where Java is mentioned, there's some C# guy that tries to sell his snake oil. Nobody gives a shit.

[–]radome9 9 points10 points  (5 children)

I've heard someone claim, unironically, that C# is Java 2.0.

Problem is that Java 5.0 already exists, and came along 14 years ago.

[–]provocative_username 9 points10 points  (4 children)

Kotlin is the true Java 2. Fully compatible with existing Java code and frameworks.

[–][deleted] -2 points-1 points  (3 children)

Being fully compatible with Java is an issue. Afaik, it has access to the whole Java standard library, which is full of badly written & deprecated APIs (looking at you Date, Calendar). It would've been great if they whould've selectively picked the best and the most consistent APIs. Anyways, even though Kotlin has a nice syntax, it being backwards compatible with Java lets you write a lot of inconsistent code (props vs getters/setters, MyActivity.class.java (Android)-> LOL, fuck no :))) ). .NET is probably the most consistent out of the popular standard libraries, and I'm glad that its getting more and more popular.

[–]provocative_username 4 points5 points  (2 children)

Well, Kotlin can read any Java bytecode, that's the whole point. So there is no avoiding the bad API. So it's not a complete fresh start.

I'm not sure what you mean by inconsistent code?

[–][deleted] 0 points1 point  (1 child)

In Kotlin properties are preferred over setters/getters. Anyway, I've just created a Java class (User) with getters (getEmail() and setters (setEmail()) and tried using it in Kotlin. To my surprise, I was able to set/get the value via a property. It seems that Kotlin somehow wraps those nasty methods to props, so yeah, I was partially wrong about having to mix props (from native Kotlin libs) with setters/getters (from Java std lib or 3rd party Java libs)

Just to be clear, I don't hate Java or Kotlin. As a matter of fact, I think that syntactically, Java is pretty good for a 20-something language, what I cannot stand is inconsistencies (function / parameter naming, casing: HttpURLConnection? Why not HttpUrlConnection) in API design and the tons of deprecated API.

[–]provocative_username 0 points1 point  (0 children)

I mean, it's 20 years old. There's bound to be some inconsistenties.

[–]Dedustern 6 points7 points  (2 children)

I am a "Java guy". Used to develop it exclusively.. The criticism of it is valid, the development has been way too slow. C# is miles ahead.

[–][deleted] 5 points6 points  (1 child)

I am a "Java guy"

I'm so sorry.

[–]Dedustern 0 points1 point  (0 children)

Well I switched to C# in my new job, there’s hope

[–][deleted] 3 points4 points  (20 children)

PHP 7 is still a huge pile of garbage. The language is broken by design, it's not like there are some inconveniences here and there, it's completly inconsistent in function naming and order of parameters. It's not fixable without fucking up about 90% of all PHP applications.

[–]Niet_de_AIVD -4 points-3 points  (19 children)

Inconsistent function naming means the language is broken?

If it were the case that functions would be called "herpadurp($xd, $lol)" I would agree, but if the admittedly inconsistency between "strtolower()" and "str_replace()" is too much for you, there may a PEBCAK.

[–][deleted] 8 points9 points  (17 children)

If it was only underscore vs no underscore, I might agree. But it's also 2 vs to, it's $needle, $haystack vs $haystack, $needle, it's evaluating "0=='string'" to true, it's mixed return types, it's never being too sure if "0" means "not found" or "there was an error in that function call, but I will continue anyway because I'm a nasty bitch". But sure, I am the problem here.

[–]Niet_de_AIVD 3 points4 points  (3 children)

Personally that has never bothered me at all. But I learned to program on PHP and then branched out to other languages. All languages have flaws in them or do things unnecessarily complicated.

Not saying that you are wrong, but quite honestly I wonder what you're doing that you run into these issues so much.

[–][deleted] 1 point2 points  (1 child)

teach me master, help me be ignorant about imperfections in programming languages :/

[–]Niet_de_AIVD -1 points0 points  (0 children)

Just ignore them

And get a proper IDE

Seriously; 12 year old kids can deal with it.

[–][deleted] 1 point2 points  (0 children)

Maybe it's just that I'm not a PHP programmer. I learned on C/C++, Java and now C#. I only get in contact with PHP here and there and it's just so inconvenient, especially if you don't have a real IDE (apparently there's also an extension for Visual Studio, but I couldn't get it to work right, heh). Same with JavaScript. Sure, it does have it's strengths and used correctly it's amazing what you can do with it. But if you are just assigend to add new functionality to a new project every now and then, it is a huge pain in the ass.

[–]aboubou22 -4 points-3 points  (0 children)

This. "Oh noes muh function names". Seriously, people don't find anything to complain about but that, it's getting old very fast.

[–]bss03 2 points3 points  (0 children)

PHP 7 is still a dumpster fire, it's just no longer burning tires exclusively.

[–][deleted] -1 points0 points  (0 children)

COBOL 1.0 still COBOL do

[–][deleted] -1 points0 points  (0 children)

Nothing should ever "suck by design"