Protip: Actually know what you're talking about before talking about it.Python is too basic...
Protip: Actually know what you're talking about before talking about it.Python is too basic...
No the language design encourages bad practicesNo, Java is not bad. Java has a bad reputation because it is easy, and that means a lot of bad programmers and programs. That is like blaming Mercedes for the fact 95% of their drivers would gleefully run you off the road.
I could probably do the same in Clojure but I just woke up and thus tiredAlso, the haskell quicksort is really short. In three lines of code:
qSort :: (Ord a) => [a] -> [a]
qSort (x:xs) = (qSort . filter (< x) $ xs) ++ [x] ++ (qSort . filter (>= x) $ xs)
qSort [] = []
^b) I hate Python, but it's still a good language to start with. Certainly better than learning Java as one's first language.
Have you ever reached outside of Java?b) I learned Java as my first language and I'm doing fine.
This is exactly why I wouldn't recommend Perl for a beginner languageOne way to do things. It's generally easier to do things when there aren't so many ways to do the same thing.
It also has some awesome libraries for it toActually it can be fairly good for starter game development as well, a bit weak but definitely not a bad option.
Protip: Don't liePython is too basic...
It allows FP, it is not primarily an FP language. Otherwise your okay
THE HORROR. Although C# is better than the last two. BUT STILL, THE HORRORC# and Java/Javascript
Elitest programming preferences are boring. C# is brilliant in accomplishing what it sets out to accomplish. At the end of the day, I can sit down and quickly turn out an app That Works Really Well and makes bajillions of dollars for my stakeholders. Anything else is pointless bullshit.THE HORROR. Although C# is better than the last two. BUT STILL, THE HORROR
Also, the haskell quicksort is really short. In three lines of code:
qSort :: (Ord a) => [a] -> [a]
qSort (x:xs) = (qSort . filter (< x) $ xs) ++ [x] ++ (qSort . filter (>= x) $ xs)
qSort [] = []
(defn q-sort [[x & xs]]
(lazy-cat (->> xs (filter (partial > x)) q-sort) (list x) (->> xs (filter (partial <= x)) q-sort)))
I'll give it that, it works well. Even if it encourages some shitty codeC# is brilliant in accomplishing what it sets out to accomplish
No it isn't. Programming is not just a way to make money. It is an art form also. And go try and make that app concurrentAt the end of the day, I can sit down and quickly turn out an app That Works Really Well and makes bajillions of dollars for my stakeholders. Anything else is pointless bullshit.
http://tech.jonathangardner.net/wiki/Why_Java_Sucks#IntroductionC#, Java and Javascript are fucking amazing!
My implementation is brokenCode:(defn q-sort [[x & xs]] (lazy-cat (->> xs (filter (partial > x)) q-sort) (list x) (->> xs (filter (partial <= x)) q-sort)))
What part of bajillion dollars did you miss? Concurrency, scalability, etc etc....who cares. The thing is already performing its main task, which is making money and lots of it. If I have to rebuild it again in 30 years, nobody cares because in Real Life that's what happens to old apps anyway.I'll give it that, it works well. Even if it encourages some shitty code
No it isn't. Programming is not just a way to make money. It is an art form also. And go try and make that app concurrent
I'll give you C# for what it is, but meh
If using good design practices will help you make your app better and allow you to build it faster. Why wouldn't you try to use them?What part of bajillion dollars did you miss? Concurrency, scalability, etc etc....who cares. The thing is already performing its main task, which is making money and lots of it. If I have to avenge it again in 30 years, nobody cares because in Real Life that's what happens to old apps anyway.
Stop right there. That's the extremely popular and common misconception, that you should make it better and faster.If using good design practices will help you make your app better and allow you to build it faster. Why wouldn't you try to use them?
You misunderstood me, I meant be able to make the app faster. Therefore you could make more apps and thus more money all in a shorter amount of timeStop right there. That's the extremely popular and common misconception, that you should make it better and faster.
True, where a solution is better suited to the situation then that is fine. But when you could do the same correctly in an equivalent or lesser time frame then you do.Its not great code or design. Its a good systems design, but the code itself is pretty terrible. I could probably improve it to shave off a few seconds or improve the code so that its easier to modify, but my time is expensive: its cheaper to just leave it as is. Similarly, since I'm not an expensive top-tier-does-everything-right developer, it was way cheaper to hire me than to pay some guy 300k/yr (equivalent) to do it "correctly."
In the end my code might be crap but my solution was art.
Obviously I am, I have never been the type to look at real world application. I am more interested in theory than anything. And theory is a real world application@Strikingwolf you're stuck in the mindset of doing something for fun and are not looking at the real world applications of coding. @Pyure clearly has far more experience in that field than we do, and has covered it pretty well.
I like PythonThis is why I will always disagree with you on Python and C++. You dislike them and encourage people to stay away from them, yet I always recommend them. I went through ~150 job listings a month ago for computer science, electrical engineering, and computer engineering. Out of those 150 or so listings, only ONE mentioned Ruby (while preferring Python), while about 120 required C++, Python, or both. The remainder required AutoDesk experience, but that's not exactly revelant to this discussion.
To tell the truth I don't care about the "real world". What I'm doing right now is just as real as what anyone else is doing. Currency is just something humans invented, and has no place in a universal marketplace. But knowledge is the ultimate currency, especially for someone who doesn't care about living.The real world isn't what you're used to with code. That's something I suggest getting used to real fast if you plan on doing anything with code for a living.
To tell the truth I don't care about the "real world". What I'm doing right now is just as real as what anyone else is doing. Currency is just something humans invented, and has no place in a universal marketplace. But knowledge is the ultimate currency, especially for someone who doesn't care about living.
Actually they do, indirectly. You can sell a book containing your knowledge written down for currency. Then exchange the currency for a 4k TV, provided you make enough money from said bookI'm buying a 4k TV this week. They don't accept knowledge.
I'm not, I've thought about it before, but honestly I don't have much use for money for these reasonsBtw dude are you already making money with your skills? I realize you're still in school but you could make a pretty penny by taking online subcontracts. Hell, I'd pay you.
Not that simple.Actually they do, indirectly. You can sell a book containing your knowledge written down for currency.
True, but everything anyone says is a gross oversimplification if we are to go by physics. It all depends upon your level of abstraction. Also, the point still stands that knowledge can be traded for currency in some wayNot that simple.
Abstraction or simplification to the point of inapplicability is worthless.True, but everything anyone says is a gross oversimplification if we are to go by physics. It all depends upon your level of abstraction. Also, the point still stands that knowledge can be traded for currency in some way