godratiopragmatic_herogodratio
IF you want to become a Jedi you better learn to make your own fucking lightsaber.
You can remain a padawan for the rest of your life fine by me. Means I have the competitive advantage. Thanks.
I'm sure that in your realm of starwars fanfics everybody is awarded a golden star for effort.
I sure hope more indies buy into this idea of Jedis and Ninjas and how cool it is to write games in C (or better yet "modern" C++) and use Vulkan (totally Jedi power level) and uninstall themselves from the already crowded indie market in the process. Thanks.
Oh how I wish I could side-track those pesky little gamemaker, unity, Java, Csharp slinging padawans into writing yet another platform abstraction for getting all files in a directory.
Have them waste time writing yet another buggy, incomplete C parser to add basic reflection and meta-programming capabilities to C. Have em write all sorts of different macro-based hashmap implementations, dictionaries, stringpools, red-black trees and whatever the fuck else is there in every other programming language out there.
Did you know that ye ole' Yoda master uses Vim and GDB? You better get crackin!
We could also sucker them into creating and maintaining some sort of elaborate build system that holds together that house of cards. Ideally something with a true 1970s unix heritage, with cryptic rules and bizarre, inconsistent syntax. Like autotools and makefiles. Something hacky and nonsensical. As Unix is to C, C is to Unix.
Convince them that punching commands in VT100 emulation is peak of human-computer interface.
Because that's what "real" programmers use and that there's an unbounded explosion of productivity and power once you've mastered them.
It is not the way of the Jedi if every line of code doesn't bend their minds in eight dimensions at the same time:
1. How many cycles is this going to waste?
2. Is this undefined behavior? What does the C standard have to say about this?
3. How is this going to affect the size of the binary? Will it fit on 1.44?
4. How is this going to explode the compile times (and it is going to because it's C/C++ we're talking about)
5. Am I trashing the cache, and how many bytes i'm wasting per cache line read
6. Who owns the memory, how i'm going to allocate it, free it, etc
7. Am I corrupting the memory or having a race condition (without ever knowing for sure)
8. What would Mike Acton think (this is important)
Make em run linters and memory sanitizers, watch their hair color waiting for it all to build.
In the end it's all going to be worth it - because your textured cube will run at over 9000 FPS.
That's what makes you a true Jedi Knight!
Since I don't have to do any of that. Means I have a competitive advantage*. Thanks.
Wow. Go off on a tangent much? No one is saying do all that.
Im saying building your own abstractions.
I have seen the result of y our type of thinking. In the game industry your costing companies a lot of money and man hours.
As a side note someone who has done all that multiple times will come out a much better programmer and given the exceptions where they have bad teamwork ethics I would hire them over anyone with your mindset for game production.
If your building your own indie game... be my guest do what you think is good for you. Maybe your a rust expert and you can build a game super fast that way because your built your own abstractions and do not need a lot of performance or low level customization perfectly fine.
To summarize what I mean to be a Jedi you must build your own lightsaber , if you have not attempted to implement it your self while learning other CS concepts than you can not be a Jedi.
I am not talking about the erroneous concept of coding ninjas in my analogy I am specifically referring to mastery. Programming mastery.
Programming is not about the languages: code is a tool used to solve problems that programmers face. Some languages address certain tasks better than others, but ultimately you simply need to end up with code that hasn't wasted your users' time or your own time.
godratio
I have seen the result of y our type of thinking. In the game industry your costing companies a lot of money and man hours.
godratio
To summarize what I mean to be a Jedi you must build your own lightsaber, if you have not attempted to implement it your self while learning other CS concepts than you can not be a Jedi.
pragmatic_hero
I sincerely think that C and Unix are the worst calamities the software industry has ever experienced.
Pseudonym
As for C, once again, if it wasn't for Unix, the most popular cross-platform systems programming language would be a modern version of BCPL.
Could be worse, I guess, but I'd rather have C than BCPL all things considered.
Pseudonympragmatic_hero
I sincerely think that C and Unix are the worst calamities the software industry has ever experienced.
So... this is an honest question... how could things have gone differently?
abnercoimbrepragmatic_hero
What Sean shows is that it is POSSIBLE to write small programs in C fairly productively after you've accumulated a whole set of tools over years and years of work and experience.
And thus avoiding the mindset that C can't be used for small tools pretty much ever. I'm talking about a certain kind of thinking that is very black and white, and of course I don't believe Todd falls in that category, but just thought I'd point out Sean's lecture.