[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/sci/ - Science & Math


View post   

File: 45 KB, 340x255, 10.jpg [View same] [iqdb] [saucenao] [google]
5331068 No.5331068 [Reply] [Original]

Worst. Language. Ever. Period.

>> No.5331079

java

>> No.5331086

>>5331068
It's bad. Only java, visual basic and c# are worse.

>> No.5331089

why is that?

>> No.5331091

>>5331068
Not the worst language, people just think it's a lot better and useful than it really is.

>> No.5331094

>>5331089
because OOP

>> No.5331104
File: 603 KB, 843x613, 1354663072031.gif [View same] [iqdb] [saucenao] [google]
5331104

>> No.5331107

>>5331068
It's turing complete so it is the same as all other languages!

>> No.5331111

The language of gods is confusing and difficult for humankind;

>> No.5331116

>>5331107
>It's turing complete so it is the same as all other languages!
Most retarded post of the year.

>> No.5331121

>>5331116
He's right though.

>> No.5331125

>>5331121
>functionally equivalent=the same
No.

>> No.5331128

>>5331111
Lisp isn't hard to learn dude.

>> No.5331135

All of you faggots have never had to use VHDL

Go try that for a day

>> No.5331162
File: 183 KB, 566x690, 1280786169585.jpg [View same] [iqdb] [saucenao] [google]
5331162

>>5331068
you posted the wrong image

>> No.5331203

>>5331162
Java is very good for the purpose it is used for - server side enterprise applications.

>> No.5331206

>>5331203
>javascript

>> No.5331209
File: 204 KB, 1920x1080, 1352471456606.jpg [View same] [iqdb] [saucenao] [google]
5331209

All of you must ascend to my level.

Haskell is the only way.

>> No.5331210

>>5331206
?

>> No.5331217

what's an actually good language?
>inb4 Python

>> No.5331218

>>5331210
He's implying that you do not lift.

>> No.5331227

>>5331217
Let's look at three families of languages.

> strongly homoiconic
roughly, lisps though lua pretty much fits here too

> pattern-based
ML family

> stack
e.g. forth, factor

These are pretty fucking awesome languages.

Then you have
> curly-brace random syntax languages
C, python (it uses tabs instead but this is not significant), java, etc. These tend to be very shitty.

>> No.5331232

>>5331068
List some gripes. I'm curious.

>> No.5331257

>>5331068
You misspelt best ever.

>> No.5331268

>>5331257
> trying this hard

>> No.5331275

>>5331227
>>5331227
thx m8

>> No.5331291

>>5331227
You listed all characteristics when on 'single processor' paradigm. There are also languages that treat parallelization as first-class feature. Also java > C++ in that area.

>> No.5331306

>>5331291
Inb4 moar coars

also, FORTRAN.

>> No.5331322

>>5331291
I don't believe there is an agreed-upon idea of what a good parallel computing platform is. Good automagic parallelism doesn't exist right now.

>> No.5331323

>>5331306
fortran sounds like 4chan c:

>> No.5331328

>>5331068
OP i think the problem is that you're using pen and paper instead of a computer

>> No.5331389

it's ok-ish when used just as C with objects. RIIA, smart pointers, rule of zero, no destructors whatsoever, passing everything by pointers, an occasional template here and there - these are all good parts. but have i seen code written this way? fuck no.

personally i blame so called addison wesley "experts", selling their hacks like they were legit programming techniques.

>> No.5331436

>>5331389
> it is ok-ish when used as C with objects
I think this is wrong-thinking. I hate C++ a lot. I shit on it every chance I get. But it has a place and that place is not "C with objects." C already has objects in the way C++ does (from a programming perspective). What C actually lacks relative to C++ in this regard is automatic vtable generation.

If your concern is needing a better-organized C, there is no such language. You're best off using a powerful language with a good FFI, and there are MANY choices here. Literally every decent programming language with unambiguous syntax has an FFI and I'd guess at least 50% of them have really easy-to-use FFIs. C++ offers no benefits whatsoever in these cases. You program in the high-level language when you can, and call foreign functions in a C library when you can't. There is no place for C++ here in any way.

C++ one really big strength compared to this is that it can in principle (and often in practice) create locality of memory access very well if you're willing to plug away at it. If processor time is your bottleneck, C will be the best. If memory is the bottleneck, C++ will be the best. If performance bottlenecks are not a problem, C or C++ are really, really bad choices and no design pattern in the world will make them better.

>> No.5331454 [DELETED] 

ITT: people who can't handle a real programming language

>> No.5331475

What do you guys think of MatLAB? I use it a lot at school, but not a computer engineering major. My CS and CE friends though say it's a very versatile language, powerful, and up and coming for the new generations, even though they're not forced to learn it.

>> No.5331477

>>5331068

that is the stupidest stock photo I've ever seen

>> No.5331479
File: 141 KB, 390x390, matlab.png [View same] [iqdb] [saucenao] [google]
5331479

Forgot the pic

>> No.5331484

>>5331436
While I think that, largely, programming language wars are redundant (language *should be* irrelevant to a good programmer; I don't think the typical language zealot realizes that it's not his choice of a language that marks him as intermediate-at-best, but the fact that a *programming language* is important...), it is refreshing to see a C++ hater recognize that even though C++ does a lot of dumb things, rolling your own vtables is fucking retarded.

>> No.5331488

>>5331477
Yes, they could have at least used a ball point pen.

>> No.5331506

>>5331135
That's what you get for not using Verilog.

>> No.5331525

>>5331475
For data processing I prefer Python. Numpy/Scipy allow you to do most of the things Matlab does, but Python is also, you know, real language (i.e. if you suddenly want to do something slightly different from data analisys, it won't be giant pain in the ass).

>> No.5331527

>>5331484
I think programming language wars are good and I think people are too dismissive of them. What are we making faster computers for if not to make our lives easier? And what makes programming easier but more powerful programming languages? There is a reason we don't do arithmetic with sets even if we say things like "numbers are REALLY defined in terms of sets". Who is going to prove the mean value theorem with Peano arithmetic? The fact that we don't is like the fact that some languages are more powerful than others, even if they're all REALLY Turing complete.

Being dismissive of language wars is hasty, I think.

>> No.5331540

The main thing I hate about C++ is the whole 'deceleration separate from definition' thing. This kind of thing is not needed anymore. Interfaces are fine, but C++ header files are stupid. I just wish there was a language they had the low level control of C++ without the messy syntax.

>> No.5331547

>>5331540
You can let the definition double as the declaration if you want.

>> No.5331559

>>5331547
this, the compiler isn't going to give a fuck

>> No.5331581

>>5331527
No, programming language wars *are* bad.

Because the languages we use tend to be, at least, not terrible. And at the core of it, the issues of expression in language are the *easy* part of software development. And this is why C/C++ are still the core low-level programming languages -- They're good enough that the actual difficultly in writing good software is elsewhere, and have incredible API support, so they're not going away anytime soon. It's simply not worth the effort to displace C/C++ because the *real* gain is very minimal, as the difficult tasks in software development have nothing to do with languages.

Programming languages are notations. No more, no less. Some are better than others, but the big problem in writing software is virtually never a result of the language itself.

You can wish all you want that something will come along and displace C/C++ as the standard desktop low-level programming language, but it's not going to happen simply because the cost is way out of line with the benefit. What's displacing C/C++ is the move of more and more development work to non-desktop platforms, where the existing toolset surrounding the C twins isn't an advantage. But already, PHP has a ton of inertia, and it's an even shittier language than C++.

>> No.5331594

>period
>not full stop

>> No.5331599

>>5331540
That's programming convention, not something built into the language itself.

That said, it's hard to get around. Declaration is a problem in the implementation of any programming language; C/C++ has a solution that at one time seemed more elegant (declaration is done entirely within the programming language itself), but creates its own mess of problems.

>> No.5331665

>>5331581
>They're good enough that the actual difficultly in writing good software is elsewhere
I don't think this is true in any area of human endeavor, because I think you have the implication wrong. You're right that the problems we tend to have in developing new software are not language problems, but this does not imply that languages can't get in the way of this work.

The problems we face in electronics engineering aren't problems with logic, but large chips have replaced the core logic family anyway.

Programmers are a more stubborn breed for reasons I do not understand. I suspect this is because programmers in general tend to program "solved problems" and when you're working in such a domain you can be very stubborn indeed. Researchers tend not to use such languages, even when their area of research isn't programming language theory.

Thankfully I am not a programmer so I am free to choose tools that fit the problem rather than force the problem to fit my tools. And though it may irritate TI that I sometimes buy from ST there aren't a lot of wars between engineers like there are about programming languages.

>> No.5331677

>>5331306
As someone else who study physics, other people have to still learn fortran as well? I thought it was just my school......

>> No.5331686

>>5331436
>If performance bottlenecks are not a problem, C or C++ are really, really bad choices
I've got two words for you: multitasking and backups.

Every program should minimize its footprint, not just be barely efficient enough to be usable. You want it to run smoothly alongside 200 other processes, and be included in SD card backups.

Developer time is valuable and has to be weighed against end product quality, but don't kid yourself that an inferior product isn't an inferior product. Smaller is better. Faster is better. Less dependencies is better.

Not to mention that programs in C or C++ are usually better fit to the platform, with ready access to all of its features.

>> No.5331690

I think toy languages like ook, brainfuck, or lolcat are much worse.

But I agree C++ is a terrible language. PHP sucks too, so does Java.

>> No.5331715

>>5331665
>this does not imply that languages can't get in the way of this work

I never said otherwise. It's just that C/C++ are "good enough" that the cost* of replacing them is way out of scale with the benefit, especially as the limitations of the languages we use for large-scale software development are almost trivial compared to things like architecture and maintenance.

It would take an immense amount of effort to replace C/C++ -- you would need to not only develop a new language that is better in some tangible way, but you would also need to have that language be (reasonably) standardized across all platforms, and have access to an incredible amount of APIs. And then you'd need to have the education infrastructure in place, so fresh college grads going into entry level positions would have enough experience with it that they wouldn't be lost on day one. And then you'd have to convert billions of lines of existing code to it...

Moving on from C/C++ is not a trivial proposition, and I seriously doubt that it would actually be worth the effort. Best to, imo, let it slowly die with the desktop platform itself. If you want to kill off a language, though, please start with PHP.


* - measure cost in dollars, time spent, caffeine consumed, total count of stress-relief blow jobs, or whatever. It's going to be freakishly expensive.

>> No.5331721

>>5331686
> Smaller is better. Faster is better. Less dependencies is better.
You are practicing a religion.

>> No.5331744

>>5331721
>>5331742
Hivemind.

>> No.5331742
File: 16 KB, 350x280, no.jpg [View same] [iqdb] [saucenao] [google]
5331742

>>5331686
>Every program should minimize its footprint

No. Just, no.

You have a finite amount of developer resources. In modern computing, footprint is a pretty low priority. Yeah, it's nice, and we like to have programs that can install over the internet in a small amount of time. But, realistically, you're almost always better off spending development resources on reliability and proactive maintenance.

It's good to have programs with minimal footprints. It's better to have programs that have better feature sets and are easy to maintain.

>> No.5331750

>>5331715
> I never said otherwise. It's just that C/C++ are "good enough" that the cost* of replacing them is way out of scale with the benefit
Replacing an infrastructure is indeed expensive and that is a reason why inferior designs exist. If replacement of anything were free we'd always have the best. This is a non-argument and supports nothing.

But it is easy to not use C++ on new designs. That this isn't done is a disease. If EEs still worked with discrete transistors the world would have grinded to an absolute halt and the profession would be loudly and justly condemned as pointlessly inefficient and full of superstition.

> especially as the limitations of the languages we use for large-scale software development are almost trivial compared to things like architecture and maintenance.
Maintenance is exactly where ease-of-expression wins out and this is why you will always hear language wars, because actual people actually coding have to maintain shit in shit languages. This is exactly the case of preferring casual expressions over peano arithmetic. We have to maintain these proofs, check them, teach them to others. Syntax is a massive part of this and even mathematicians overhaul their syntax over time. Again programmers seem stubbornly incapable of tasks absolutely everyone else finds not only very easy but totally natural.

>> No.5332871

>>5331068

>2012
>not using Python for everything

shiggy

>> No.5332877

>>5332871

diggy

>> No.5332880

>>5332871
>>5332877

deu

>> No.5334149
File: 11 KB, 200x200, 1283963192483.jpg [View same] [iqdb] [saucenao] [google]
5334149

>>5331068
It's may not the language itself which sucks, but STL is pure manifest of horrible case of autismal retardation. Srsly, why did they do that? Why? And no, Boost is not an answer its just STL retardation lite.

mfw when they wanted Java to be C++ withouth those bad things and all they copied was just those bad thing

>> No.5334151

>>5331121
>>5331125
Protip: Turing completeness says nothing about computational efficiency, programmer efficiency, ease of debuggability, compile times, etc etc.

>> No.5334154

>>5331540
>hates header files
What? It's a consequence of being compatible with C. Also helps on compile times if you program not like a retard.

>> No.5334156

>>5334149
Uhh, what's wrong with the STL It's totally boss. Efficiency like if you wrote it by hand, but awesome library classes? Java wishes it was STL, but due to backwards compatability requirements it got its generics instead.

The iostream library on the other hand is shit, if only because of the lack of documentation and completely shitty naming convention. The lack of portability of locales and facets and such also makes it shitty.

>> No.5334205

>>5331091

>> No.5334469

>>5334149
Java generics is actually pretty good. It is extremely hard to get this right and Sun did an excellent job.

>> No.5334510

/sci/ no to derail too much but whats a good starting language??

>> No.5334539

>>5334510
HTML

>> No.5334745

>>5334510
Depends what skill you want to end up with. Python is a good overall choice. I'd choose Java over it if you want to end up building big services or C# if you want to build desktop applications.

>> No.5334747

>>5331068
You forgot a semi-colon at the end.

>> No.5334755

>>5334510
Coq

>> No.5334757

>>5334469
HAHAHAHAHA no. No, they did not. You can't even derive from a type parameter.

>> No.5334775

>>5331209
Agda and Coq.

You are smalltime.

>>5331389
>passing everything by pointers
Fuck *you*, sir. T [const] & or unique_ptr<T>, depending on whether or not you transfer ownership.

>>5331540
Rejoice! Modules are coming. Probably.

>>5334154
That is the exact opposite of a true thing. The whole header-file paradigm is very nearly single-handedly responsible for C++ compile time typically being shit.

>> No.5334789

>>5334151
The difference between 0.999... != 1 trolls and turing completeness trolls is that everyone recognizes the first kind.

>> No.5336150

>>5334775
>That is the exact opposite of a true thing. The whole header-file paradigm is very nearly single-handedly responsible for C++ compile time typically being shit.
I'm sorry someone isn't working at a company where everyone has read "Recursive Make Considered Harmful".

>> No.5336170

>>5334151
Computational efficiency will become irrelevant when quantum computers resolve the P=NP problem.

>> No.5336181

>>5336150
I don't think you understand what the person you're responding to was pointing out.

>> No.5336228

>>5336170
>>Computational efficiency will become irrelevant
>what CS majors actually believe

this is why CS majors shouldn't be allowed in sci

>> No.5336259

>>5336150
Oh, you have no idea. But fixing the shitty makefiles -- which I did for myself, even if I can't talk Mr. Hurr-durr-RAII-is-just-a-fad into giving up his broken build chain -- didn't really help. (Precompiled headers _did_, but that's a band-aid on the Titanic.)

>> No.5336292

>>5336228
Speaking as a CS major: no, no we don't. ... well, not all of us. I came from a school where CS was a kind of math, not a kind of engineering. I suppose this may vary.

>>5336170
I strongly suspect there are problems in NP that are not in BQP.

>> No.5336323

>>5331677

Post-Grad theoretical physicist here. It's widely used everywhere in academia. It's so easy to write efficient to write parallel, modular and efficient code with.

>> No.5336339

>>5334510

C. It's hard at first but you'll learn everything you'll need to know when you move onto other languages. Starting with something like python will allow you to make faster visible progress, but you'll have no idea what's actually going on.

>> No.5336345

>>5336292
>BQP

Neat. Didn't know that one.

>> No.5336391

Fortran IV master race reporting in.

I hate my life. And my supervisor.

>> No.5336393

C# masterrace.

>> No.5336434

>>5336339
Not sure about C; you can pick up a lot of vile habits from it. I'd suggest assembly language -- any assembly language -- for the same reason.

Alternately, learn Lisp. Also for the same reason! It's largely divorced from the hardware, but it creates its own very small world that everything else is built in, so there's very little black-box magic; you'll still learn how the underlying rules of the system can be used to build higher-level constructs.

>>5336393
Yeah, sure. Have fun with not having any way to perform type-level computations at compile time. If there is one thing I hate Eric Lippert for, it is disallowing constrants from being used in overload resolution. In the same language as non-endofunctorial nullables it is the worst and most frustrating decision ever.

>> No.5336471

>>5336434
>Yeah, sure. Have fun with not having any way to perform type-level computations at compile time. If there is one thing I hate Eric Lippert for, it is disallowing constrants from being used in overload resolution. In the same language as non-endofunctorial nullables it is the worst and most frustrating decision ever.
Protip: Most people dont need to do that shit.

>> No.5336544

C++ is awesome for high performance programming and if you have a god awful amount of data that you need to parse and digest.

The kiddies saying it has no redeeming qualities probably just started <3 years ago or have no real experience.