I know we can shit on C/UNIX forever about X, but lets have a thread where we actually list GOOD things about C/UNIX concepts and paradigms. I'll start. You will never find a more worldwide supported language than C. Since the birth of the IBM PC, C has been THE standard in technology and the basis of everything modern computers use. The software you using to view this post most likely has been either written in C, or written in a language that is based off C, not to mention using libraries written in it that are required to function.
LISPjew need not apply, infact I foretell that this thread will make him beyond shitter shattered he'll spam the thread. I have only one question to ask him, why the lack of competion? I've always wondered if this story was true, and who it was who wrotethe find command. In the Oct. 94 issue of Byte they had an article on "UNIXat 25" which said that Dick Haight wrote the find command along with cpio,expr, and a lot of the include files for Version 7 of UNIX. I don't knowwhere to send this message directly to Dick Haight, and I would appreciate itif you would forward it to him, if you are able. If you can't, well then Ihope you liked the story. I got your mail address from "The UNIX HatersHandbook", and would like to add this to your Anti-Forward: Until that frozen day in HELL occurs, and the authors of that book write a better operating system, I'm sticking with UNIX. Sincerely, Dan Bacus [email protected]. Hail to the king, baby.
Yes, let's have a boring thread where we fellate each other over the shitty OS/language that's everywhere.
Jose Garcia
Wow. Who are you again? A nobody? Thanks. That's good to know.
Andrew Wood
How can it be shitty if its everywhere? People wouldn't use it if it wasn't shitty. You seem massively contrarian.
Robert Brown
It's really worrying if the only thing you could think of saying is that it's popular, not anything about it that makes it inherently good. Nobody denies that it's popular. Its popularity is where the trouble starts. C and Unix were fine for a research system on a PDP-11, but it's the current year now and I'd like to write my low-level software in a language with sane error handling conventions and sane strings, and I'd like to use an operating system that doesn't base its filesystem hierarchy around having run out of disk space forty years ago and doesn't rely on ad hoc in-band signaling to pass options to programs. But inertia is a bitch, and losing compatibility is never worth it in the short term, so here we are. C and Unix are unavoidable, and I will use them, but I'm not going to pretend their flaws are actually good. Anyway - there are genuinely good things hidden between the flaws, but how come you couldn't think of any? Is popularity the only good thing you know?
Ryder Clark
Why would you write anything low-level in anything but assembly?
James Gomez
Because I'm a fan of portability, and the extra effort doesn't justify the gains in most cases.
Jose Gonzalez
pick one.
Kevin Edwards
Wow. Who are you again? A nobody? Thanks. That's good to know.
How can radio cockrock/rap music be shitty if it's popular? How can excellent old films be forgotten if they're excellent?
Adam Murphy
Wow. Who are you again? A nobody? Thanks. That's good to know.
Xavier Fisher
Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know. Wow. Who are you again? A nobody? Thanks. That's good to know.
Adrian Powell
Hello, I'm a LISP weenie and I'd like to say that the UNIX hater does not represent us as a whole. I very much like C. While I do prefer LISP in many cases, it is THE golden standard for low-level languages and if I ever need something requiring speed, it will be done in C. There is a reason C and UNIX became so widespread!
Isaac Price
C is a nice terse language that gives easy access to both high and low level interaction.
One good thing about C is it was made to be portable to almost any system.
Nice try, but you aren't fooling me. I have not yet spoken with one LISP weenie who has actually liked C before. All the ones I've met and talked with have seen the flaws of C and UNIX and hate both of them rightly so. Just because something's popular, it doesn't mean it's good.
Camden Murphy
That has nothing to do with terseness.
The undefined behaviour situation is shit, but it's not entirely the language's fault. UB was intended to allow the implementation to take some action appropriate to the hardware, which is a good idea in principle. Of course, that was never enforced, so GCC uses it to delete your code instead.
I don't love C, but Unix is the best we've got right now, and there is still satisfaction to be found in using it as it was designed.
Jonathan Kelly
>>>Zig Forums >>>/ancap/ >>>/liberty/ Because every free market gravitates towards monopolization and faster the less regulated it is, which is the case for software. That is in part due to production in higher numbers being cheaper per unit (in doftware you even have to produce only one copy, the rest is fuplicated for free but you still pretend you worked for them and "deserve" profit), network effects (everything else is in c so it is easier use c too, this would be true for lisp if everything was in lisp) and mindshare/being unwilling to change until there is something not only equal, or better, but MUCH better. For any single actor it is more efficient to keep using c/unix braindamage so that is what they do. That is independent of it OVERALL being more inefficient than everyone moving to something better, but that would not reflect positively on quarter yearly investor reports so the long term benefits get sacrificed for short term profits.
Andrew Scott
Time to put Linux programmers in death camps to make room for NetBSD and Plan 9 then.
Kayden Barnes
The UNIX weenie belief that C is "only good because it's popular" also means that C becoming less popular will make it less good. This is why UNIX weenies act like they work in the AT&T sales department.
This used to be an argument for making better software. UNIX weenies think software that sucks is more acceptable when more people use it, which sucks even more.
This is because of the incompatibility of C and UNIX. UNIX can't use a Ruby library from Python, or even C++ from C++, which sucks. On a compatible OS, popularity doesn't matter at all as long as you have a compiler or interpreter available, because you can share data types and common features between any language.
it *was* nice of British Telecom to force Sun to rename their white pages service to be something other than "yp") ...A crying shame too. After all, even though Sun's "yellowpages" service was really a white pages (name lookup)service, they should have been able to use whateverdeceptive name they wanted. Renaming things for marketposition is really a modern (not just unix) tradition:Build a presentation manager: call it Presentation Manager...Build a personal computer: call it The ibm Personal Computer...Build a machine with an 8-bit byte: Define "byte" to be 8 bits...Build a IO subroutine package: call it DOS (an OS).But the unix weenies have refined it to a high art.Everything must be "open" and a "standard." Why, my companyalready supports at least a dozen "standards!"The latest Sun entry is their new "free" window system.Their salesman called me proudly: all you need to do is sendthem a thousand dollars a copy, plus pay a royalty onprograms which use it, and you can use their new free openstandard window system (called "open look" of course).Hm, maybe I can add cons to C and call the result Lisp...
Jose Brown
Where is your proof?
Jayden Powell
This. Windows master race.
Gabriel Campbell
Such as? How?
Ethan Hill
That must be the dumbest logic I've ever seen. Quality is not quantity. In fact, the most used a system is, the most retarded it is, because most people are retards.
Justin Long
Yeah man! Fuck the popular kids! Counter culture. Dude!
Ian Bennett
Guess what, Skippy. You just spoke to one.
Charles Cook
That's not a real pro you absolute retard, it's like saying Windows is good because it gets more support for being popular.
Oliver Smith
Being able to easily find people to work on your system (having a C language base in this case) is a good thing. Having to find people to work on your more obscure system is a lot more difficult regardless of the premium you add to the average programmer salary. This is the business case of using popular, highly conscious technologies.
Luke Reed
its good business to write your crap in electron, it is not good for us
Joseph Bailey
clearly HTML+JS stack is the best programming environment for all computers. It is portable, people can pick it up quick, it doesn't use """"""C strings"""""" and it has garbage collection. It's everything anyone wants. Mutable types, everything you need.
Carson Foster
Then you should have no problem ignoring what businesses do with their own business.
Joshua Myers
FUCKING BASED
Nolan Foster
Literally where? The only thing that could ever rival against C is C#, which itself is built on C.
Ryder Cooper
Wow. Who are you again? A nobody? Thanks. That's good to know.
Alexander Gutierrez
Ada/SPARK is better than C for systems programming. Pascal and Lisp are better for end user programs, but an OS written in them would also be very interesting.
Connor Harris
Proof.
Parker Perez
Read the PDF. Are you the Rust faggot? It's strange to me that we have Rust being hailed as The Next Big Thing when Ada offers C performance with extreme safety. Rust is a perfect example of NIH syndrome. Ada is: - Low-level - Highly concurrent - As fast as C++ for single-threaded applications - Faster than C++ in multi-threaded situations - Total memory safety - No anal case sensitivity - Helpful compile time errors - Mature seas.gwu.edu/~mfeldman/ada-project-summary.html
Rust is a shitty hipster language and nobody likes you.
Owen Lewis
Arguably. I've rarely ever heard of using Ada besides for legacy systems. Ditto. You didn't understand my question? What is over taking C that isn't C based itself already?
Brody Walker
What do you mean, exactly? Things that compile to C?
Asher Lewis
You mean assembly? No one actually used anything high level on IBM PC XT, etc.
Leo Thomas
Pick one
Jonathan Collins
So you use assembly for everything you do on your PC? Impressive.
Jaxson Cooper
Python standard interpreter and it's dependancies are in C.
Alexander Fisher
The reference implementation is in C, but the language itself isn't "c-based", you can implement it in other languages
Caleb Adams
I'm not sure in which sense Python is overtaking C, but being based on C isn't really significant. It's an implementation detail. The second most popular implementation of Python is PyPy, which is itself written in a subset of Python through some arcane JIT magic.
Caleb Baker
This.
Sebastian Allen
BASIC was used quite a bit, even for various commerical games. I know for a fact that Avalon Hill and SSI were fond of it. Pic is just one example, but download a bunch of their early stuff from abandonware sites and you'll see. Some of them are compiled BASIC, but others aren't. Note that they often distributed the files in tokenized form, so you have to open them in GWBASIC.EXE in order to LIST the code. You can then save it with a ,A suffix, if you want the plain ascii version on disk. Some models of the IBM PC even came with BASIC in ROM. en.wikipedia.org/wiki/IBM_BASIC
"It's just as fast or faster than C/C++" is one of the oldest lies in CS that people still utter unironically about languages.
Tyler Russell
PC XT was released in '83. That shit wouldn't run very fast on it.
Juan Miller
I had an XT and a C64. It'd run way faster on the XT but non-trivial BASIC wasn't portable due to heavy reliance on directly prodding the hardware so it doesn't matter. Assembly was rare on the XT, I generally only used it for TSRs. Did you know you had to manually park the drive head on an XT's HD to prevent it potentially hitting the platter when losing power? Fun times.
Carson Miller
Try those games yourself on a cycle exact emulator like 8086tiny or PCEm. The BASIC games run fine, because they're mostly adventure, strategy, simulation, RPG, puzzle, etc. I don't think they made many action games in BASIC, although there were some simple ones and those worked okay too.
You're right, my mistake. I don't think anything is taking over C.
Daniel Cook
bump because it makes lispjew mad
Levi Diaz
...
Easton Watson
In practice, most developers won't even bother to make their program multi-threaded in C++, because its too much work and the single threaded performance is acceptable to them. It seems pretty clear that a language designed for writing multi-threaded programs will have an edge as time goes on, since multi-core processers are extremely common now and the amount of cores on even the shittiest consumer hardware marketed as new will inevitably increase again. What C and C++ have are decades of attention and development. Once C and C++ really got popular pretty much all the mainstream effort went into their compilers. What you're referring to is something not inherent in their language standards necessarily, but what GCC/Clang/Visual C++/etc are doing for you after many years of hard work and optimizations. Why do you think this is impossible for a statically typed, compiled language with manual memory management that isn't C or C++? It seems more like a problem of time, momentum, popularity, and politics. Ada was the military/government language so you'd need security clearance in some niche aerospace company or something to get paid to use it usually, Pascal's much needed language improvements were often proprietary (although Freepascal has pretty much all of the important features today), other powerful compiled languages were not allowed outside of their corporate castles, such as Mesa. Not to mention that even if a compiler was available, it would usually be proprietary and costly.
Robert Bailey
Because all the modern languages hold you hands at runtime. Rust, for example, has runtime bound checking.
Wyatt Gray
The CPU holds your hand at runtime too.
Colton Martinez
Going to need a source for that claim. Until you can provide me with a better alternative, I'll stick with C. If you're speaking about Ada, Ada's primary compiler (GNAT) is programmed in C.
Xavier Davis
I've had enough systems lock up on crash on me from kernel bugs to know that's not true.
Ethan Nelson
If your program can't handle recovering when the CPU is saying that you've commited an error, then you will portentially have buggy software.
Jacob Bell
How does the CPU know you're running the wrong instructions because you fucked up a pointer offset or whatever? How does it know you entered an (infinite) loop that has no break? How does it know you toggled wrong registers in some hardware peripheral? Etc...
Nolan Clark
My point is that the CPU can trap things like divide by zero, illega instruction, illegal opcode, etc/
Brandon Young
That's not hand-holding, that's it having literally no idea how to proceed and halting.
Wyatt Cox
Let's go back to your original example. Rust doing bounds checking is considered hand holding A processor doing bounds checking is not considered hand holding. It's just stopping because it doesn't know how to proceed.
Juan Scott
I always wondered why this was the vernacular used in technology documentation. There aren't any laws forbidding them, or are there...
Samuel Cook
Who thought it would be a good idea to send Sean Penn up to the ISS?
Hudson Taylor
But C/UNIX are shit and show that software developer's favor shit.
Robert Gomez
But you are shit and your post shows you eat shit.
Oliver Gomez
Not my example, different user. The processor isn't hand-holding, we access memory that is out of bounds all the time on a modern OS and rely on the processor's ability to quickly and atomically detect that and fault to implement paging, memory mapped IO, etc.. Doing that purely in software would be incredibly slow.
Luke Richardson
Those are functions of specific CPUs, not all CPUs. If you start writing code for embedded stuff on Z80, you're not going to have those. Even the 68000 doesn't have an MMU. And those chips are much less buggy and botnet than modern shits, so there. :-) Of course you can get a 68020 if you really need MMU, but those chips are still too slow for running modern bloated shit. People have trapped themselves in the cianigger Intel world and think some out of bounds hardware features matter. HAHAHAHAHAHAHAHAHAHAHAHAHAHAH!!!!!!
No latency/throughput added to runtime without errors, though. Unless you can prove that they add some cycles just for that.
Thomas Price
and bounds checking is a feature for specific languages, not all programming languges.
If your cpu allowed for bounds checking at a hardware level adding that functionality to a high level language doesn't waste any extra cycles. "Holding your hand", doesn't need to cost cycles.
Robert Murphy
What a genius.
Nathaniel Brown
It does not slow down hardware. It just takes more space on the die. The amount of transistors that we can fit on a single die increases exponentially.
Ian Wright
It does slow it down. The more transistors you add, the longer each cycle has to be. Though, in "modern" segmented CPUs, it wouldn't matter much, as checking against bounds wouldn't increase the time of the longest execution phase, which is what determines the CPU period in the first place.
Jacob Bailey
What's the best programming language?
I mean, I don't know anything about tech but I have this idea in my mind that a lot of tech is designed based on what sells well rather than what's actually "best" and I see Zig Forums as purists of sorts. If Zig Forums could become some kind of Global Dictator that never needs to fear being overthrown, what would they do?
Kayden Butler
Any person who ever tries to sell you any language as the best programming language is either a nodev or a liar. Choose your language based on your needs. There is, however, a worst language (besides esolangs), and its name is PHP, although recent versions were a step in the right direction.
Kayden Sanchez
Is Visual Basic better than PHP? Or is it an esolang?
Jack Jenkins
It certainly looks better at doing what it's designed for.
Grayson Allen
That's nice to know but I was hoping to know what the best programming language just out of curiosity. Like, right now, you seem to be telling me that there is no best language because each one has their own pros and cons depending on what you intend to do with them. If there isn't already a perfect language, is that because such a thing can't exist? If there must be pros and cons then what would be the best language "generally"?
Brayden Thompson
What's the best vehicle? What's the best food? What's the best animal? That's basically what you're asking. If you want to narrow things down into specific problem or scenario, then maybe you can actually get some useful answers. Otherwise, well just pick something at random, or if you're a pleb pick the most popular thing so you don't have to think too much.
Adrian Lewis
Generally speaking, C++ and Python would be the closest there is to being the best languages, but there's plenty of cases when other languages win. If you're going to add scripting to an application, use Lua, if you're going to solve mathematical problems, use Lisp, if you're going to automate administration tasks, use Bash, if you're going to write a dynamic website, there are unfortunately not many options better than PHP (which still sucks, mind you). If you're going to write a driver, use C. If you're going to write a business application, use C# or Java. Basically what said. You wouldn't buy a pickup truck if you're going to tour around cities, but you wouldn't buy a Smart if you're planning to go through bumpy forest roads.
Cooper Hernandez
Oh, I see. When one thinks of the best way to move across the ground, something with round wheels makes more sense than something with square wheels. In that same way, I thought there would be a programming language that's "naturally superior" to all others and that if there isn't, it must be due to external factors (i.e. the truly, most superior programming language doesn't work too well in our current reality because that language isn't compatible with currently available hardware which in turn is because the hardware isn't designed with that language in mind because the Tech Industry was built off of "such and such" practises and those practises are too deeply ingrained to uproot and profits need to be made and blah blah...)
Mhm. Alright. Thanks.
John Thompson
I'm going to play devils advocate and claim that, by your own words, you are a nodev or liar. If you define C++ and Python as "closest to being the best language", you are still selling them as "best language". I mostly agree with the rest of your post though.
Joseph Bennett
C++. It's the most useful in general. I do everything in C++, even web development, even front-end web development. The C++ code I wrote 20 years ago I can still reuse anywhere today.
Carson Ortiz
See, you just defined a physical problem, and picked a solution that works well. You didn't do that first step with any programming problem. A modern scripting language that's fine and dandy for solving typical sysadmin automation problems on modern Unix-like OS isn't going to get you anywhere in a small embedded system scenario. If you want to do a lot of heavy computations, you might use something like Fortran, but that's pretty shit for making games with. And so on.
Isaac Scott
Don't listen to them. It's called HolyC! See? It's a holy godgiven language running on every CPU! If the tasked can be finished and in the most optimal way doesn't depend on the language any longer. ONLY ON YOU
Josiah Baker
Managed languages are the future. Hardware support for garbage collection will make a comeback. Screencap this.
Brandon Diaz
Hey midget, how's Z-Lang going?
Nicholas Ramirez
But we don't need GC anymore. Rust has proven it on paper and in practice. It's ancient history, man.
Adrian Young
That sounds great.
Well, I guess the reason why I looked forward to asking the question was because I did want some kind of feedback on the idea that the Zig Forums industry developed "unnaturally" or it developed according to profit rather than tech and so programming languages are "deformed" because they're adapted to the present tech rather than the ideal tech that would arise in a society where hardware is developed according to what makes the hardware best. Now that I think about it though, since the US military would've been interested in the best possible tech for their own uses, the tech must be okay and so programming languages must be okay as well.
Can you explain why TempleOS got so much attention again?
Ian Adams
The people here love Terry's character and they love the fact that he wrote an operating system that's more than a trivial academic toy. TempleOS was designed to be a programmer's toy in the same character as the Commodore 64 computer.
Generally speaking, LISP is the closest there is to being the best language, but there's plenty of cases when other languages win. If you're going to add scripting to an application, use LISP, if you're going to solve mathematical problems, use LISP, if you're going to automate administration tasks, use LISP, if you're going to write a dynamic website, there are unfortunately not many options better than LISP. If you're going to write a driver, use LISP. If you're going to write a business application, use LISP.