Carnagie Mellon University has declared OOP dead
existentialtype.wordpress.com
How will Pajeet ever recover?
Carnagie Mellon University has declared OOP dead
existentialtype.wordpress.com
How will Pajeet ever recover?
Other urls found in this thread:
eev
existentialtype.wordpress.com
youtube.com
twitter.com
Only now they'll more Loo like Scala, which is compatible with their Javapoo
I hope we can have a mixture of good OOP and FP things. Pure anything can be huge unreadable/unmaintenable garbage.
>wordpress
must be a shit university run by fags
>Carnagie Mellon
>shitty
hopefully. it's nice to see newer languages like rust abandoning hard oo
seems to be what that user implied.
...
SCALA
C
A
L
A
>Carnagie Mellon University
literally who
>2011
Any good courses to learn functional/imperative programming online?
Coming from a student who only knows OOP and wants to learn other ways of programming.
Pic unrelated.
just make new page wen you want to make new class
Learn You a Haskell is a great introduction to Haskell.
It's available for free online.
Ops, misread your question, never mind...
Real World Haskell is a great part 2
Also available online
php did it too
>Carnagie Mellon University has declared OOP dead
i don't think OP has any reading comprehension
PHP is dead too
turboNEET
Functionnal programming is the future. Look at F#, its beautiful
hahah nice meme
actually its boring meme, 90% of web is still runing on php and will run for years to come my dude
PHP is to web what Java is to desktop, sadly
F#
PHP is legacy shit
It's the COBOL or C++ of the web
calling php shit won't make it go away
also if done right php can be helpful
also chosing one meme clusterfuck of language over another wont solve anything
The irony here is that Wordpress itself is written in OOP.
Functional programming isn't the direct opposite of OOP, but of imperative programming. Imperative programming operates on the principle that programs have a global 'state' which should be manipulated to produce the desired results, while functional programming attempts to avoid state and treat all data and program flow as interactions between functions. Having no state is often described as being "functionally pure" or "no side effects."
To use an example, consider possible programs in an imperative and functional style:
def x_plus_three(x):
y = 42 # this would be a side effect
# it's poor programming, but the language won't stop you
return x + 3
Algebra, while not technically a programming language, is indeed functional:
f(x) = x + 3
Notice that using algebra, you couldn't change the value of y from within a function that operates only on x. Purely functional languages are subject to the same constraint- in fact, they don't actually 'change' anything at all, they merely produce brand new outputs by performing calculations on their inputs. This prevents errors in case you didn't want y to become 42 or x to permanently increase by three.
As for OOP, it's just a means to reduce errors created by accidentally changing things you didn't intend to change. You might define y as a private variable in a class, meaning each object of that class possesses its own 'y' and only functions attached to that object can change it, for that object alone.
eev dot ee/blog/2012/04/09/php-a-fractal-of-bad-design/
What's the irony?
That's a strawman of both. Imperative programming basically means you tell the computer what to do. This includes procedural programming, which structures programs around procedures and OOP which structures programs around objects and messages passed between these. I can easily write C functions that have no side effects, just as I can write C functions that have. Even if they don't have side effects, I'm not really writing functional code.
Declarative programming is more of a high level description of what you want, instead of how the computer should do a thing. Declarative programming includes functional programming, which structures programs around function composition. A consequence of this is that you generally avoid side effects, but it isn't the essence of the paradigm. Other declarative (sub)paradigms include logic programming and query languages such as SQL.
Side effects aren't central, but some tend to encourage those more.
I wonder if a good way to teach for principles would be to have students write a small angularJs application that does all data binding and transformation with "filters", which are usually written in a pure functional style
could be, except web dev is gay
I think they should use jQuery and MongoDB so they will learn about webscale early on
i honestly wish functional programming would dominate. it would make programming even harder for shitty normalfags and pajeets, making people like us get the raise we deserve
Scala is fucking retarded and awful, but I still use it as my main language because it's way less broken and awful than all the other languages.
It's a huge step forwards, but some parts of it just makes me want to die, although it can also be a joy to program with
try haskell scrub
This. Haskell makes programming a joy. You no longer just write code, you breathe life into it. It's poetry. It's art.
F#
because OOP is too much for introductory course. rationale behind OOP only makes sense after a thorough understanding of imperative style and some experience with developing non-trivial software. that is what they actually did: move OOP class to sophomores(and later)
Cool nitpick, but actually the absence of side effects and global state is exactly what makes a piece of code functional.
I do write haskell, it's a great language, but I feel the type system offered by scala will eventually metamorphose into something beautiful rather than being the somewhat ugly duckling it is now.
Found the code artisan.
FP is a meme, its not even remotely useful for anything enterprise related.
Their only case of usefullness is scientific computation
>existentialtype.wordpress.com
>wordpress.com
>wordpress
Stopped reading right there.
pajeet detected
>2011/03/15
You're 5 years late, user. Clearly Pajeets didn't suffer because of that.
C++ to fuck off and die when ?.
t. extreme neet
In my first CS class we were taught O'Caml extensively, then C - the second year we did Java and F#.
OOP is long gone
...
read about data driven programming
congratulations to them for making already useless and unemployable CS grads even more useless by teaching them a meme paradigm
try and argue with my point, I dare you; you can't, FP is a niche that won't get you hired anywhere
>computer SCIENCE should be about training code monkeys
>his CS degree wasn't at least 80% about Java
enjoy being unemployed
they did it in my university too. They moved java in the second year with oop. Don't know if they teach imperative the first year tho.
Computer "science" doesn't use the scientific method
What academia does and what the industry does are completely disjunct. When was the last time you saw haskell code in production?
> CS degree
> thinking about teaching a language, not a paradigm
enjoy being an unemployed ignorant fagget
It's Saturday today, so yesterday
Nice meme
really, if an university teach you only how to do things and not why do things and the reasoning behind it, its a failure as university and you are a failure as graduate.
If you know C# or Java then you probably understand imperative programming too since they aren't purely OO like Smalltalk or Eiffel.
Another person had said this but I would recommend Learn You a Haskell too.
Bear in mind it's REALLY different from what you are used to, and it might take some time to get into the habit of thinking functionally instead of imperative.
I think 99% of universities in the world teaches you basics and fuctionalities of a paradigm, through a language of course.
What was implying it's the exact opposite of what you're saying
these 'code monkeys' will actually land a job unlike you FP weenies who prefer to jerk off to your favourite LISP dialect
Saying Java and C# are dead is like saying
>being on Sup Forums isn't a waste of my time
Even if you dislike the laungauges with every bone in your body, saying they are dead is fucking stupid.
i know, but this place is great for laughs. i mean look at it.
c# is great for making programs really fast, especially when you use blend.
Java, tough i really despise it, i know it was great in the past, but c# is at this time better. C# can be compiled to c++ and thus c# programs can now be made to run on linux and apple products.
K. Anywho, I'll just keep on making my 6 figure income building the web in php.
NO FOR FUCK SAKE
C# cannot be compiled to C++.
C# can be compiled to CLR, and Visual C++ can also be compiled to CLR, which makes the two languages cooperant.
C# can run on Linux or Apple only because of libmono.
C# and Java are really the same as proof of concept, but Java has been made with certain design choices which sounded good when it was developed (back in the '80s).
Microsoft learnt from Oracle mistakes, and made a Java-alike language patching all the things in which Java was wrong
Don't waste your time
I'll keep coming
Wasn't it Sun back then?
yep, sorry
Learn fucking assembly. After programming in assembly, Haskell is like shitting in the streets.
It doesn't have to be x86. Actually I would recommend something simpler like Z80 or ARM and make programs that run on a device you own.
shut the fuck up, ASM fedora meme
Agreed. That's why I like Clojure so well.
Scala ocaml
Get over it, imperative programming and OOP are here to stay, and functional programming will never be more than mere toys in the grand scale of things.
You're right that imperative programming and top are here to stay.
But you're wrong in your appraisal of functional programming: Scala, Haskell, Clojure, and ML's are part of a giant comeback for functional languages. C++ added functional features. Rust has functional features. Java added functional features.
The functional languages are changing the way we program, for the better. Purity is usually bad in any paradigm. We should use what works, and stay away from dogmatic views.
>AngularJS
>MongoDB
Just what undergrads needed, more useless meme tools.
Everyone says that FP languages are making a comeback, but it never ends happening.
And just because other languages add FP features in them, doesn't mean they end being actually used.
Also
>Rust
asm is ugly af
If you don't use map, lambdas, folds/reduce and so forth please kys before I have to read your shit code
I don't use them because I never had the need to use them.
Neither does theoretical physics or mathematics.
C++ has added functional features.
Clojure is actually becoming popular. This is all stuff happening right this second.
Clojure is actually a nice language though as opposed to Scala
Yeah...Scala is very complex, and I'm really not a fan.
All this means is that FP fanatics are taking over language committees. How much of that are things programmers who like that language actually wanted and how much of it is them sticking their own pet ideas in or trying to "attract" FP programmers?
Adding "lambdas" to C++ and Java seems like that.
These features are being used today in production code, and are valued.
It's no coincidence that OOP backwards is POO.
>map, lambdas, folds/reduce and so forth please kys before I have to read your shit code
your shit code must be really efficient..
where are the days when programmers actually had to make sure their programs would not use to much ram, making sure they didn't take up more space than needed on a hard drive, and above all, making sure the code runs efficiently and uses as little of the processor as possible.
Now all is see are basic programs that require a shitton of everything.
>opinions of professors on the software industry
>relevant
Pick one.
professors in universities are most of the time bad programmers themselves that could not handle the software industry. There are exceptions. And sure you can learn the basics from a bad programmer, but don't expect them to say the most sensible stuff.
How many times have you poo'd in the loo today, my Pajeet?
111,111,110 x 0?
1. Optimize the algorithm first.
2. Programmer time is more valuable than machine time.
3. Shit software design is shit software design. It doesn't matter if it's Java, C, or a functional language.
4. map/fold/reduce does not necessarily increase any runtime, but abstracts over iteration.
>2. Programmer time is more valuable than user time.
That's what you're really saying.
Nope. Programs should meet design requirements. User time is a design requirement. But the bottleneck in a program isn't a fold. If you think so, you're retarded and should learn about algorithmic complexity.
>User time is a design requirement.
And how do you think you meet that design requirement?
>But the bottleneck in a program isn't a fold.
Allocating instead of reusing storage could be a bottleneck.
>how do you think you meet that design requirement?
By carefully choosing algorithms. Most applications aren't doing cutting edge shit that requires 0% waste.
>Allocating instead of reusing storage could be a bottleneck
>could be
Sometimes, and then you should optimize appropriately. Clojure lets you use transients to fix this.
Also: most applications aren't for desktops these days. If your customer is an enterprise client and the application you're building **has to** scale anyway, then it makes sense to build a scaleable solution in a language you can be more productive in.
>OOP
>dead
kek. just because retard shitters graduating from school can't design for shit doesn't make OOP dead.
>state
so if your meme paridigm has no sense of state, how do you solve state problems?
with shitty retarded monads which are LITERALLY IMPERITIVE?