The thing is, these new DX features (like tesselation) are usually not an integral part of the game visuals. So many games just have a flag (DX9 vs DX11 flag), they make some preprocessor definitions to have two binaries, one with the newer features turned on and one with them turned off. So the windows XP folks could still play all the games (most of them would not have good enough hardware to use the new features anyway). This put the burden on the devs though, while not that hard to make two binaries it would still mean that a lot more of QA had to be done.
While I have gotten hot code replacement working in Java, it is nowhere near as good as web dev edit/save/reload cycle. You usually can not change method signatures or add new methods or classes without restarting the application. If your code is abnormal (reflection, dynamic class loading, multiple class loaders), it starts getting into the territory of "too bothersome to use". Also the debuggers get lost when debugging code that was replaced, which means that the edit/test/debug cycle gets broken. It is way better than nothing, but not nearly good enough.
The edit/save/reload cycle does work for JSP (and JSF too I believe) files though. And interface code is the most important place to get fast modifications turnabouts.
Also, no hot code replacement for Android dev. At all.
This smells too much like architecture astronaut thinking. I see the logic of your examples for numbers, but I fail to see how that would be useful for other types. Like you said the times this would actually be useful could be solved by simple OO practices, which injects some boilercode true, but this thing is niche enough to not require its own magic semantic rules.
I have to maintain around half a million lines of Javascript code and while I agree with you that static typing would help a lot, it is not THAT bad if you have a proper architecture. Dynamic typing makes too easy to just hack stuff on top of the architecture, if you don't have the discipline your project is sure to be doomed.
Button= new Button(new ButtonListener() {
@Override
void clickEventListener() {
System.out.println("You clicked the button! All in only 6 lines of code! The current value of the parent class is: " + Parentclass.this.toString());
}
});
I specially like how you need to say Parentclass.this to get the reference to the parent class, so elegant!
Also I have never found any use for co-routines in any language/platform that provides threads. Ever. I only used it a couple times in Lua because it does not have threads (not without calling platform-specific C code).
Try increasing the JVM memory (-Xms in the init parameters I believe). Ironically I used to have this exact same problem in eclipse, I can't tell where to set those parameters in IntelliJ though.
A bunch of IBM products are HELL to install. I never installed DB2 myself, but I have used it and boy I would rather use pretty much any other database server.
If you call C code from python the GIL is released so it can run in parallel in normal python threads. Many of the libraries and most of the core of the language are written in C. How much parallelism that nets you depends on your application, but simply using python threads does provide some parallelism.
Man a game like titanfall is for the hardcore gamer, a hardcore gamer worth its salt has a SSD these days. Asking for 35GB of SSD space just for audio is ridiculous.
Well yeah, that further reinforces my point. OEMs can not afford to sell at a loss (or very low profit margin) and expect to get their money back from game sales.
OEMs can not afford to sell steam machines at a loss. Unless Valve cuts them some margin for steam sales to their devices, but imagine all the early adopters buying the cheap pcs and formatting them (so there would be no way for Valve to know that any steam sale was made from a dell steam machine).
What? "good code rarely needs commenting" is absolutely true! The thing is, 80% of the code in big projects are arcane bugfixes and workaround limitations in APIs, this kind of code is almost impossible to be "good code".
If Intel can license the x86 instruction set to AMD and AMD can license the x64 instruction set to Intel how come these guys can't do the same? Oh right, Ap$le (see what I did there?)
It might come with X and gnome, or whatever. But the SteamOS is actually the Big Picture mode which I assume is very portable since it runs on Windows/Linux/Mac. you might soon see the big picture in Android too.
Really, all you have to do is kick the X11 and all the craziness from the window managers and build your own to get Linux to be usable by the common folk. That is what Android and Steam OS are doing.
Just like Google bought Youtube for its userbase. They could have made Google Videos a lot better than Youtube, but the userbase would have taken years to migrate (if at all). The point is, being the first person in the party is a very good thing if you are a startup.
The thing is, these new DX features (like tesselation) are usually not an integral part of the game visuals. So many games just have a flag (DX9 vs DX11 flag), they make some preprocessor definitions to have two binaries, one with the newer features turned on and one with them turned off. So the windows XP folks could still play all the games (most of them would not have good enough hardware to use the new features anyway). This put the burden on the devs though, while not that hard to make two binaries it would still mean that a lot more of QA had to be done.
While I have gotten hot code replacement working in Java, it is nowhere near as good as web dev edit/save/reload cycle. You usually can not change method signatures or add new methods or classes without restarting the application. If your code is abnormal (reflection, dynamic class loading, multiple class loaders), it starts getting into the territory of "too bothersome to use". Also the debuggers get lost when debugging code that was replaced, which means that the edit/test/debug cycle gets broken. It is way better than nothing, but not nearly good enough.
The edit/save/reload cycle does work for JSP (and JSF too I believe) files though. And interface code is the most important place to get fast modifications turnabouts.
Also, no hot code replacement for Android dev. At all.
This smells too much like architecture astronaut thinking. I see the logic of your examples for numbers, but I fail to see how that would be useful for other types. Like you said the times this would actually be useful could be solved by simple OO practices, which injects some boilercode true, but this thing is niche enough to not require its own magic semantic rules.
I have to maintain around half a million lines of Javascript code and while I agree with you that static typing would help a lot, it is not THAT bad if you have a proper architecture. Dynamic typing makes too easy to just hack stuff on top of the architecture, if you don't have the discipline your project is sure to be doomed.
Meh, Java does all this closure thing better
Button= new Button(new ButtonListener() {
@Override
void clickEventListener() {
System.out.println("You clicked the button! All in only 6 lines of code! The current value of the parent class is: " + Parentclass.this.toString());
}
});
I specially like how you need to say Parentclass.this to get the reference to the parent class, so elegant!
Also I have never found any use for co-routines in any language/platform that provides threads. Ever. I only used it a couple times in Lua because it does not have threads (not without calling platform-specific C code).
They had to go and make a whole new standard though right? They couldn't just implement LESS in the browser...
Change "Mozilla" to Opera and you got the same exact opinion as I do.
Really? WHAT YEAR IS THIS?
Try increasing the JVM memory (-Xms in the init parameters I believe). Ironically I used to have this exact same problem in eclipse, I can't tell where to set those parameters in IntelliJ though.
I was not aware the library needed to explicitly release the GIL. I thought that any C call would release the GIL.
Explain calmly what Turing Complete means and then say you can do "everything" in algol too!
A bunch of IBM products are HELL to install. I never installed DB2 myself, but I have used it and boy I would rather use pretty much any other database server.
If you are lucky they support SUSE, if you are unlucky they support only Red Hat version X.
If you call C code from python the GIL is released so it can run in parallel in normal python threads. Many of the libraries and most of the core of the language are written in C. How much parallelism that nets you depends on your application, but simply using python threads does provide some parallelism.
Also those little boats with the guy pushing it with a big stick in Venice. I bet they use that all the time.
Man a game like titanfall is for the hardcore gamer, a hardcore gamer worth its salt has a SSD these days. Asking for 35GB of SSD space just for audio is ridiculous.
Well yeah, that further reinforces my point. OEMs can not afford to sell at a loss (or very low profit margin) and expect to get their money back from game sales.
OEMs can not afford to sell steam machines at a loss. Unless Valve cuts them some margin for steam sales to their devices, but imagine all the early adopters buying the cheap pcs and formatting them (so there would be no way for Valve to know that any steam sale was made from a dell steam machine).
What? "good code rarely needs commenting" is absolutely true! The thing is, 80% of the code in big projects are arcane bugfixes and workaround limitations in APIs, this kind of code is almost impossible to be "good code".
I will never write another line of C++/Fortran/Perl/Prolog again in my life!
Well at least for Prolog that is true.
Startup idea, GoogleDrive bittorrent client. Downloads stuff directly into Drive, then add streaming service for GoogleDrive.
If Intel can license the x86 instruction set to AMD and AMD can license the x64 instruction set to Intel how come these guys can't do the same? Oh right, Ap$le (see what I did there?)
It might come with X and gnome, or whatever. But the SteamOS is actually the Big Picture mode which I assume is very portable since it runs on Windows/Linux/Mac. you might soon see the big picture in Android too.
Really, all you have to do is kick the X11 and all the craziness from the window managers and build your own to get Linux to be usable by the common folk. That is what Android and Steam OS are doing.
Just like Google bought Youtube for its userbase. They could have made Google Videos a lot better than Youtube, but the userbase would have taken years to migrate (if at all). The point is, being the first person in the party is a very good thing if you are a startup.