Law Mandating C++, OpenGL, and Linux Only

Discussion in 'Political Opinions & Beliefs' started by precision, Jun 6, 2018.

  1. precision

    precision Well-Known Member

    Joined:
    Feb 16, 2006
    Messages:
    7,377
    Likes Received:
    799
    Trophy Points:
    113
    Just saw where Apple is dropping support of OpenGL. So here's my take. Seeing that the use of computers has become ubiquitous in modern society, it is time that there be standards in place make cross platform software development and maintenance easier and less costly. There only needs to be one programming language, C++. There should be only one 3D rendering platform, OpenGL, and there should be only one operating system, Linux. Thus the costs of software development and maintenance will decrease. And the needs of pubic and private consumers alike will be better served.
     
  2. precision

    precision Well-Known Member

    Joined:
    Feb 16, 2006
    Messages:
    7,377
    Likes Received:
    799
    Trophy Points:
    113
    I'm not into computer games, but you serious gamers out there might see some effects from Apple's decision.

    In defense of OpenGL, although it was intially designed over 25 years ago, newer versions of OpenGL have radically changed the way that programming in OpenGL is commonly done today. Specifically, OpenGL now offers developers the capability to directly program the graphics pipeline by letting them write vertex, geometry, and fragment shaders. Thus dramatic increases in performance can be achieved by taking advantage of modern 3D graphics hardware.
     
  3. GoogleMurrayBookchin

    GoogleMurrayBookchin Banned

    Joined:
    Aug 2, 2017
    Messages:
    6,654
    Likes Received:
    2,239
    Trophy Points:
    113
    C++ is massively bloated, and no one programming language is appropriate for all tasks. For example, programs that need to use parallel processing extensively are much more optimized when written in a functional language like Lisp or Haskell. Simple scripts are best implemented in simple, readable, interpreted languages like any given shell or Python or what have you. Furthermore, no library is appropriate for all tasks and no operating system is appropriate for all tasks. Linux is great for servers, programmers, and hobbyists, but machines that need massive security are better off running something like NetBSD.

    Software development has thrived off of being completely anarchic. It's like an oral tradition: Everyone pitches in, the bad is rejected by the herd and forgotten, and innovations spread throughout the herd and allow new paths to be created.

    Apple is dumb as **** for dropping support completely, given the historical precedent for the necessity of legacy support, but OpenGL is also a very old library and new libraries like Vulkan and Metal have promising new features that are simply a huge leg up.
     
    Derideo_Te, Turin and yardmeat like this.
  4. tkolter

    tkolter Well-Known Member

    Joined:
    Mar 15, 2012
    Messages:
    7,134
    Likes Received:
    598
    Trophy Points:
    113
    Gender:
    Male
    I think they should mandate BASIC be the only programming language its older and could be adapted to modern use even if its more memory heavy than others used. ^_^ Even I can program in BASIC its rather easy once you get into it enough.
     
  5. jay runner

    jay runner Banned

    Joined:
    Oct 5, 2017
    Messages:
    16,319
    Likes Received:
    10,027
    Trophy Points:
    113
    Gender:
    Male
    Yeah man. Even I took courses in BASIC, FORTRAN, COBOL, and PASCAL way back in the day.

    Then I stopped keeping up.
     
  6. precision

    precision Well-Known Member

    Joined:
    Feb 16, 2006
    Messages:
    7,377
    Likes Received:
    799
    Trophy Points:
    113
    I don't agree with your assertion that C++ is massively bloated. Any software developer who has had to experience the nightmare of having to come into a job and be confronted with the task of having to maintain hundreds of thousands of lines of old, convoluted Fortran code will well appreciate the features provided by C++. Instead of dealing with subroutines with a hundred calling arguments, common blocks that cause all types of problems because values are inadvertently changed, huge unwieldy arrays that don't make efficient use of memory, and stupid GOTO statements that can make code practically unreadable, C++ gives software developers the features of a language that supports the modern paradigm of Object Oriented Programming, while at the same time giving the capability to dynamically and directly manipulate memory if it is needed to optimize code.

    Furthermore, I doubt that you can put forward anything that cannot be efficiently done in C++ with regards to parallel processing because it has extensive support of threads. But here is your chance to shine. If what you say is true, please provide an example of a parallel processing task that cannot be efficiently done through the use of C++ thread support.

    With regards to Linux and security, Linux is based on UNIX which has been developed by people like none other than Bill Joy and therefore massive amounts of effort have gone into making it a secure operating system. Can you provide an example of how NetBSD is better than Linux at security?

    I totally disagree with this assessment. I have seen places where code is so damn convoluted that only a couple of people who have been around since the dinosaurs could maintain it. Then massive amounts of effort have to be devoted to re-writing a critical application because there is simply no one who can maintain it anymore because of its anarchic nature.

    I really don't think you understand that OpenGL programming has changed drastically since its beginning many years ago. Instead of geometry like a triangle strip being coded into an executable that is run by the CPU and then passed to the GPU, programmers now directly manipulate the GPU by specifying geometry in geometry shaders. That is very different than how it was done many years ago, and it has thus caused tremendous increases in performance.

    The thing is this, software vendors have to devote enormous amounts of resources to maintaining applications that will run on different platforms. I haven't written a program in Direct3D in a few years, but when I did, I found it totally disgusting that although Microsoft was decreasing OpenGL support in favor of Direct3D, it took so many more lines of code to do things that could be done in OpenGL with much less effort. Companies like Microsoft and Apple do that kind of stuff to force people to use only their tools so that they can have a competitive advantage.
     
    Last edited: Jun 6, 2018
  7. precision

    precision Well-Known Member

    Joined:
    Feb 16, 2006
    Messages:
    7,377
    Likes Received:
    799
    Trophy Points:
    113
    Naw dawg! If you have to do some serious professional programming, you need a modern language like C++.
     
  8. GrayMan

    GrayMan Well-Known Member

    Joined:
    Feb 1, 2010
    Messages:
    8,386
    Likes Received:
    3,522
    Trophy Points:
    113
    Too lazy to learn another language? They each have different advantages and new languages are developed by learning from the advantages and disadvantages of all of them. When a better language comes out it replaces the ones that are subpar and offer no advantages that the new one doesn't. It will happen naturally.
     
  9. precision

    precision Well-Known Member

    Joined:
    Feb 16, 2006
    Messages:
    7,377
    Likes Received:
    799
    Trophy Points:
    113
    It isn't a matter of being lazy, because if you really knew anything about it, you would that if you know a language like C++ well, its relatively easy to learn another one. Actually it works to developers advantage in a way because if you can actually write code, there will be a job for you simply because there are so many languages. The disadvantage is to companies and consumers because they have to bear the cost of developing and maintaining applications that will run on multiple platforms.

    Since you have put your two cents in, can you tell us why C#, or any other language of your choice is better than C++?
     
  10. GrayMan

    GrayMan Well-Known Member

    Joined:
    Feb 1, 2010
    Messages:
    8,386
    Likes Received:
    3,522
    Trophy Points:
    113
    True for desktop applications but not for phone, tablet, or website applications.
    Managed code like C# in a framework if objects are actually better for these things. Native code/language should be limited to building the framework. Managed code prevents users creating things like memory leaks, threadlocking, and developers are limited to the managed framework are less likely to build apps that could damage or break other systems or create inefficiencies. C++ should only be used by the core programmers who need extra functionality not provided in the framework and not everyday developers.
     
    Last edited: Jun 6, 2018
  11. GoogleMurrayBookchin

    GoogleMurrayBookchin Banned

    Joined:
    Aug 2, 2017
    Messages:
    6,654
    Likes Received:
    2,239
    Trophy Points:
    113
    You understand that C++ isn't the only modern programming language, right? C is a much more concise and elegant language than C++. Rust is a promising spiritual successor to C++. Etc, etc.

    Also, I just want you to think about what a nightmare it would be to try to do **** handled by basic shell scripts in C++. BASH means that I can use two lines of code to automate all kinds of administrative tasks on my machine. Doing this in C++ would require importing multiple libraries and probably take several times as long to write.

    Oh, you can do any task with any turing complete language, it's just that some languages are more appropriate for certain tasks. You can cut your steak with an axe if you want to, but that would be dumb so you would use a steak knife instead.

    For example, Haskell, being a purely functional language, has a type system that allows operations to automatically be parallelized across multiple CPU cores without any extra effort from the developer.

    NetBSD has an integrated container system, has a subsystem called "Kauth" implemented at the kernel level to handle authorization, implements the majority of security features that are found in the Hardened version of the Linux Kernel natively, allows hashes of files to be stored and user-defined actions to be taken if the file does not match the has, and there's more **** that I can't remember off the dome.

    The point is, you really underestimate the diversity of operating systems out there. Hell, for as niche and useless for general purposes as TempleOS is, it has features that can't be found anywhere else, such as the native ability to use hypertext in source code.

    You're not going to make that problem go away by forcing people to use a single group of software.

    Do you think that you can't do this in Vulkan or Metal? Because you can, and those new libraries are written with new hardware in mind, meaning that it takes advantage of advances that you would have to completely rewrite OpenGL to take advantage of.

    Yeah, that's why creating protocols and translation layers is a thing. Imagine, for instance, how powerful WINE could be if Windows was free software so that the developers of WINE could have greater insight into the inner workings of windows, you might even see windows applications running at near-native levels on Linux machines.

    I mean, hell, the thing that made C so popular in the first place is that it made it possible to program on one platform and compile it for any other platform.

    I'm a believer in FLOSS. I think that some orthodox Stallmanites like the Debian team take it a bit far, but I believe wholeheartedly in the mission statement of the EFF. It's just that there's ways to combat the monopoly that these companies are exerting over computers that don't involve forcing people into rigid standards that don't take into account context.
     
    Durandal likes this.
  12. Durandal

    Durandal Well-Known Member Donor

    Joined:
    May 25, 2012
    Messages:
    55,781
    Likes Received:
    27,314
    Trophy Points:
    113
    Gender:
    Male
    It would have been nice to have such standards put in place back in the 90s, when Microsoft came to dominate so much of the PC market and forced a lot of game development onto their proprietary platform and APIs. Perhaps then we wouldn't have games being so heavily biased towards Windows today. In fact, it is never in our best interests to have one company dominate a market like that. A lot of good computing platforms died out during those years, such as the Amiga and BeOS, in favor of the major market players who had the power and freedom to dominate. The same goes for hardware, where Intel and AMD have come to dominate while others such as IBM (Power and PowerPC), MIPS and ARM were ultimately relegated to special applications. Of course, now we might be seeing a move back towards ARM in favor of Intel/AMD as mobile devices become so prevalent. That we now have some ARM-based laptops on the market and even Microsoft supporting that platform with Windows is significant.

    Linux is a wonderful thing. An open operating system that costs nothing to install and use is fantastic. I'm sure it actually helps with security when everyone can get involved in finding and fixing flaws, and it is a fundamentally free (libre) system that is not designed to take advantage of the user in any way to benefit some for-profit company. It is developed for users by users, as well as by companies for enterprise use, and everyone benefits for it.

    However, OpenGL has some issues, I think. It does things less optimally than certain alternatives, such as DirectX and Vulkan. I would not make OpenGL a mandatory standard, but would protect against private dominance over such APIs. Vulkan, like OpenGL, is open. I think just having openness as a foundation for all software would be optimal. This is also potentially a good thing for hardware. Here is a very interesting approach to open hardware:

    https://www.raptorcs.com/content/base/products.html

    Raptor Computing Systems is now selling EATX boards and complete systems based around IBM's POWER9 CPU, and this platform is absolutely open. Everything on it is open, including all of the firmware. I'm thinking I will eventually invest in one of their systems as a desktop PC replacement, but only if they manage to bring down the size and cost a bit. I would like to see it in ATX form, so that the wonderful world of PC cases would be an option. Then, if all software is fundamentally open and free, it could easily be ported to this platform. No one would have to petition a corporation to do it. As it is now, I know that my Linux of choice, Fedora, runs on this platform. That makes it all the more tempting to me.
     
    Last edited: Jun 6, 2018
  13. precision

    precision Well-Known Member

    Joined:
    Feb 16, 2006
    Messages:
    7,377
    Likes Received:
    799
    Trophy Points:
    113
    I disagree in the strongest terms with this assessment. If a software developer does not have the ability to code in such a way in which segmentation violations, memory leaks, and threadlocking occur, then they simply have no business writing code for a living. That "managed" crap that you are talking about is for neophytes who don't know what the hell they are doing. If you can't create a class that has constructors and methods that efficiently allocate and deallocate memory, and destructors that deallocate memory and don't know how to properly deploy the OOP concepts of abstraction and data hiding such that various types of memory problems don't occur, then you should not be writing code for a living. Similarly, if you don't know how to write a program that makes use of threads such that you don't have race condition, then you should not be programming for a living.
     
  14. precision

    precision Well-Known Member

    Joined:
    Feb 16, 2006
    Messages:
    7,377
    Likes Received:
    799
    Trophy Points:
    113
    Sorry, I want to reply to some of the other interesting responses but I don't have time. Will try to get back to this later. Thanks to all who have responded. I did not know that we have such knowledgeable people here.
     
  15. RBoyd

    RBoyd Well-Known Member

    Joined:
    Jun 3, 2018
    Messages:
    1,797
    Likes Received:
    777
    Trophy Points:
    113
    Gender:
    Male
    You can't mandate technology without killing innovation.
     
  16. Bow To The Robots

    Bow To The Robots Banned at Members Request

    Joined:
    Jun 17, 2009
    Messages:
    25,855
    Likes Received:
    5,926
    Trophy Points:
    113
    We should go back to punch cards and vacuum tubes. Society was a lot friendlier then. And the government knew a lot less about us.
     
    Last edited: Jun 6, 2018
  17. GrayMan

    GrayMan Well-Known Member

    Joined:
    Feb 1, 2010
    Messages:
    8,386
    Likes Received:
    3,522
    Trophy Points:
    113
    I can respect an idealist programmer who takes pride in their work but I don't see this being of an advantage to someone like google or microsoft with a bunch of random schmoes building apps for their app stores. There is no good way to force these programmers to make good code for the app store that doesn't slow down phones/tablets and drain batteries or cause errors except to give them a tool that limits the possibility of them doing stupid stuff. They could remove these crap programs or just expect people to ignore them but it would make play store less valuable when those apps could have been functional with the right tool.
     
  18. RBoyd

    RBoyd Well-Known Member

    Joined:
    Jun 3, 2018
    Messages:
    1,797
    Likes Received:
    777
    Trophy Points:
    113
    Gender:
    Male

    You and your fancy Punch Cards, . . . (grumble . . .grumble) Vacuum Tubes!

    In my day we arranged Mules into And Gates and calculated Nand Gates with painted toads.

    And were grateful Dagnabit!
     
  19. Bow To The Robots

    Bow To The Robots Banned at Members Request

    Joined:
    Jun 17, 2009
    Messages:
    25,855
    Likes Received:
    5,926
    Trophy Points:
    113
    I'm old enough to remember when the internet ran on stream power.
     
  20. Jonsa

    Jonsa Well-Known Member Past Donor

    Joined:
    Jul 26, 2011
    Messages:
    39,871
    Likes Received:
    11,452
    Trophy Points:
    113
    The dream of a single environment with object code compatibility across all platforms has been around since about forever.

    OTOH, demanding a standard single set of programming tools assumes "one size can fit all". That is not just not the case.
     
  21. Jonsa

    Jonsa Well-Known Member Past Donor

    Joined:
    Jul 26, 2011
    Messages:
    39,871
    Likes Received:
    11,452
    Trophy Points:
    113
    I used to sell MS-DOS against DR-DOS and CP/M back in the day. I still recall the excitement of getting the first 8 inch floppy disc drive.
     
    ButterBalls likes this.
  22. Primus Epic

    Primus Epic Well-Known Member

    Joined:
    Mar 21, 2014
    Messages:
    2,341
    Likes Received:
    774
    Trophy Points:
    113
    Maybe would should have just one Freight Shipping Company, or just one Automobile Manufacturing Company, or just one Motion Picture Company, just one Aerospace Company, just one Financial Market, just one Super Power, etc., etc., etc..

    Software and Hardware "standards" already exist cross-platform. The real 'problem' (as you define it) is the very same thing that gives users of technology choices and options. Those things stem from the Proprietary nature of certain technology sold at the Retail level. You are talking about Retail Computing Technology and the net effect that dissimilar foundation technology or core technology has on the End User and Development communities respectively. Java, was supposed to solve this 'problem' years ago but never did for a number of different reasons. Code Anywhere. Run Anywhere. That was the initial promise of Java, and that's what attracted my old boss to acquire the technology from Sun. But, I digress.

    While I agree that C++ is more flexible, you will find that C is more embedded throughout Fortune 100 and Global 1000 type companies - still to this day. I've personally run into many C implementations wrapped around COBOL within much of the Banking industry, as just one example. A differentiation needs to be made between Retail and Commercial or Business computing environments as well. They are not the same and they do not have the same technical requirements. Serious Enterprise computing environments are highly customized and tailored to meet the needs of the enterprise - which may or may not focus much on the needs of the End User within that enterprise. Even within the enterprise you will find islands of legacy foundation technology driving entire business units at the operational level. But, I digress again.

    Bottom line (because there are many branches of conversation that can be had here) - if the focus is on Retail Tech, then right now Java is running all over the place - literally. Many of your Personal Electronic/Computing Devices are running some kind of Java implementation right now. It is more portable, flexible and adaptable to certain applications (uses). You simply would not run compiled object oriented code on certain devices because it is not optimal. On the other hand, complied OOP with greater standardization in its implementation would help the EU (not the European Union) in terms of probably less frustration and it would certainly make the life of Developers easier when it comes time for cross platform integration and writing code that is more 'supportable' in the mainstream.

    Will this happen? No. This kind of technology is too much of a free spirit. In fact, this level of retail tech is predicated on Freedom at its core. The Freedom to not be tied down to a singular programming language, as just one example. Software (in the Retail space) has always driven Hardware. So, Hardware is basically doing what's it is told to do by Software. The most successful exception to that rule is Apple, of course. However, there are others such as BlackBerry or CrackBerry. The shift from BlackBerry OS to QNX was major and it highlights the main reasons why a shift to a singular OOP standard as you call for, simply will not work. The QNX bridge to Java is a natural journey and QNX has good market share in automobile head unit development. You simply won't find many complied code implementations in automotive applications and this is where Personal Computing Devices are increasingly coming under pressure to Plug-N-Play well - inside your Vehicle. But, for the third time, I have digressed.

    This is a subject that is difficult to discuss thoroughly without digressing in many different directions, which is probably at the heart of your own frustrations with the "Tech."

    I get it, but it just won't happen in my lifetime or yours.
     
  23. garyd

    garyd Well-Known Member

    Joined:
    Jun 18, 2012
    Messages:
    57,454
    Likes Received:
    17,038
    Trophy Points:
    113
    Good job. Standards are one thing but what he is suggesting is tantamount to trying to freeze technology in place and that is almost always a truly stupid idea.
     
  24. redeemer216

    redeemer216 Well-Known Member

    Joined:
    Jun 12, 2013
    Messages:
    1,598
    Likes Received:
    421
    Trophy Points:
    83
    C++ is by far my favorite programming language (because of how much manual power the programmer has over memory usage and others (unlike java) + the amount of library support (as well as supporting virtually everything it's parent C supports), but mandating support for one ubiquitous language can go wrong very quickly. Every programming language has some advantages over the other, even over C++ and getting rid of them is not a good idea. It stifles innovation. Like others have said scripted languages like python will always be better for certain situations than any compiled language.

    if anything the only language that really should die is Java, but that will happen naturally.
     
    Last edited: Jun 6, 2018
  25. Primus Epic

    Primus Epic Well-Known Member

    Joined:
    Mar 21, 2014
    Messages:
    2,341
    Likes Received:
    774
    Trophy Points:
    113
    Like, since before forever. The concept itself is god - when you think deeply enough about it and to its logical conclusion. There is something about the notion that also reminds me of TRON:

    [​IMG]

    [​IMG]

    Its cool. I want one. Just ain't gonna happen in my lifetime.
     
    Last edited: Jun 6, 2018

Share This Page