Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. What's a "real" programming language?

What's a "real" programming language?

Scheduled Pinned Locked Moved The Lounge
javascriptcsharptutorialc++com
85 Posts 20 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M MSBassSinger

    Quote:

    I'm not looking to develop web pages.

    I see. I misinterpreted what you meant overall. My fault.

    Quote:

    I just was looking to teach myself typescript since JS is being used outside of the browser now

    I would be curious to better understand why you would want to use a slow scripting language on the server when there are a number of better, compiled, languages available. I do not doubt you have a good reason, but in my experience, those using JavaScript on the server is usually because they are front end developers tasked with writing something for the backend, and JavaScript is what they are proficient in. I realize that may not be the only reason, but I would find it interesting to better understand why you are trying to increase proficiency at writing server code in JavaScript. Thanks

    H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #46

    I already know C#. I already know C++. I already know C. I have no intention of learning Java. I learned Typescript for the same reason I'll probably end up learning Python even though I hate it. Because it's used everywhere. Node.js IS the backend these days. For at least half the major paying projects I've seen. Like it or not, it's what's for dinner, and the less I know about that stuff, the further behind I get from where the rest of the world is. Even if Typescript gets retired right now it's relevant. Extremely relevant, because people are producing code in it. I don't have to like it to want to understand what the hell is going on with the state of the world in development these days. I intend to age out gracefully when I do, not get pushed out because I don't understand the way programming is done anymore.

    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

    M 1 Reply Last reply
    0
    • M MSBassSinger

      Quote:

      even as the industry is putting greater and greater demands on it

      I would think the industry as a whole is not putting greater demands on JavaScript - just the community of developers who are dedicated to JavaScript and fight tooth and nail to keep from switching to a better language. I think the industry as a whole has recognized JavaScript's limitations (and labor costs to implement) and created the market that gave rise to WebAssembly on the front end and desktop, and higher level compiled languages for server apps.

      H Offline
      H Offline
      honey the codewitch
      wrote on last edited by
      #47

      As I recall, node.js is a google project, not a community project. Maybe I'm wrong. But nodejs is probably the biggest single offender here, in terms of technology.

      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

      M 1 Reply Last reply
      0
      • H honey the codewitch

        I already know C#. I already know C++. I already know C. I have no intention of learning Java. I learned Typescript for the same reason I'll probably end up learning Python even though I hate it. Because it's used everywhere. Node.js IS the backend these days. For at least half the major paying projects I've seen. Like it or not, it's what's for dinner, and the less I know about that stuff, the further behind I get from where the rest of the world is. Even if Typescript gets retired right now it's relevant. Extremely relevant, because people are producing code in it. I don't have to like it to want to understand what the hell is going on with the state of the world in development these days. I intend to age out gracefully when I do, not get pushed out because I don't understand the way programming is done anymore.

        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

        M Offline
        M Offline
        MSBassSinger
        wrote on last edited by
        #48

        Quote:

        Node.js IS the backend these days. For at least half the major paying projects I've seen.

        I have yet to see node.js used to any significance on the projects I have worked on, but my projects tend to be larger projects with a web front end and an API-based backend, or just a service-only API-based backend project, some on-premise, and lately, mostly Azure-hosted or Azure-native. Some of the older projects being updated have a little node.js in them, but it goes away in the updated version. Of course, since I loathe JavaScript, I would tend to gravitate to projects not requiring it, which makes my experience more subjective than objective. Yet, statistically, node.js shows high on the server app language utilization, but these lists I see are not differentiated between overall app size and complexity. Now that .NET 6.0+ (current is .NET 8) is out, stable, full-featured, and can run compiled on multiple OSs, it is a safe candidate for server apps and cloud apps that was not true just a year or so ago.

        H 1 Reply Last reply
        0
        • M MSBassSinger

          Quote:

          Node.js IS the backend these days. For at least half the major paying projects I've seen.

          I have yet to see node.js used to any significance on the projects I have worked on, but my projects tend to be larger projects with a web front end and an API-based backend, or just a service-only API-based backend project, some on-premise, and lately, mostly Azure-hosted or Azure-native. Some of the older projects being updated have a little node.js in them, but it goes away in the updated version. Of course, since I loathe JavaScript, I would tend to gravitate to projects not requiring it, which makes my experience more subjective than objective. Yet, statistically, node.js shows high on the server app language utilization, but these lists I see are not differentiated between overall app size and complexity. Now that .NET 6.0+ (current is .NET 8) is out, stable, full-featured, and can run compiled on multiple OSs, it is a safe candidate for server apps and cloud apps that was not true just a year or so ago.

          H Offline
          H Offline
          honey the codewitch
          wrote on last edited by
          #49

          I already know .NET I don't need to expend effort learning it. I was on the Visual Studio development team at Microsoft back when they rolled out C#. I've used it ever since. I'm covering my bases, making sure I have a broad understanding of relevant technologies used in software these days. However you feel about it, node.js is part of that milieu today. Your opinions or mine about how solid it is are not relevant to the fact that it is being used. That can be bitter pill to swallow, but remaining relevant and not holy rolling yourself into a corner sort of requires it.

          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

          M 1 Reply Last reply
          0
          • H honey the codewitch

            jschell wrote:

            Definitely a compiled language. But no way would I want to create a compiler using that.

            Where's your sense of adventure? You mean you don't want to have to maintain 247 level nested parentheses 6 months after you put the code down?

            Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

            J Offline
            J Offline
            jschell
            wrote on last edited by
            #50

            honey the codewitch wrote:

            247 level nested parentheses 6 months

            lol...I think you are underestimating the needs of a writing a compiler at least by an order of magnitude.

            1 Reply Last reply
            0
            • K k5054

              Assembler is the only "real" language, everything else is just syntactic sugar.

              "A little song, a little dance, a little seltzer down your pants" Chuckles the clown

              J Offline
              J Offline
              Jerry Manweiler
              wrote on last edited by
              #51

              I could also argue with you that C is the only other real language when used as originally defined back in the (what was it) 70's! On a serious note (at least for me), anything that is not a strongly typed language suffers from a serious flaw in its ability to do the job intended (as opposed to written!) Actually, I have changed my mind, even assembly isn't a REAL programming language. The only REAL programming language is the string of 0's and 1's (or bits) that the CPU consumes on its way to World Dominance! All Hail the AI Overlords!

              1 Reply Last reply
              0
              • H honey the codewitch

                I already know .NET I don't need to expend effort learning it. I was on the Visual Studio development team at Microsoft back when they rolled out C#. I've used it ever since. I'm covering my bases, making sure I have a broad understanding of relevant technologies used in software these days. However you feel about it, node.js is part of that milieu today. Your opinions or mine about how solid it is are not relevant to the fact that it is being used. That can be bitter pill to swallow, but remaining relevant and not holy rolling yourself into a corner sort of requires it.

                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                M Offline
                M Offline
                MSBassSinger
                wrote on last edited by
                #52

                Quote:

                I'm covering my bases, making sure I have a broad understanding of relevant technologies used in software these days

                That is as good of a reason as any and makes good sense. I haven't had to learn JavaScript (to the depth of using it like you do when needed). So far, I have found plenty of work where C# (server app development, cloud development, web development with Blazor) is required, combined with experience in Azure native development. Converting JavaScript to C# (coding and architecture) is about as far as I have gone. If getting and keeping a job required me to learn JavaScript and using node.js, then I would do so. I have been fortunate so far. I know what the relevant technologies are, but I have been fortunate to be able to pick and choose which ones I work in. I applaud your flexibility with the projects you choose.

                H 1 Reply Last reply
                0
                • P PIEBALDconsult

                  jschell wrote:

                  exclude C#, Java, JavaScript.

                  Essentially correct. Can the Java VM or C# runtime (and .net framework) be implemented those languages? I doubt it. Yet, as to C# and Java, I'm not sure that they are excluded by definition. Certainly their reference implementations rely on Virtual Machines and runtimes, but I'm not ready to say that their core functionality require those. I reserve the notion that maybe someone could use one or the other to implement a proper compiler which supports some core functionality of the language without needing the full VM/runtime -- such would probably not be able to inter-operate with "normal" applications. I don't know Java, but C#'s core functionality/syntax shouldn't need it. As to C++, I'm not even sure about that. Or, for the most part, any object-oriented language. I think D is implemented in D.

                  jschell wrote:

                  it is a two step process

                  jschell wrote:

                  C/C++ 'built' using a compiler and then a linker

                  jschell wrote:

                  there are still two steps.

                  I see a statement on another site [ "C++ implementation" means the compiler plus linker plus standard libraries ] and I would respond, "no, forget about any reference implementation and 'standard libraries', look only at the core of the syntax, what is the minimum you require to implement that? Without having to link to the library and such, you don't need a linker. Consider how the first version of the C compiler and library must have been compiled prior to the libraries having been compiled. I know, not very useful, but that's not the point. Consider only the syntax of the language itself, and not any of the baggage you have come to expect to go with it. Surely someone can (has the ability to) take the language syntax and implement a whole new eco-system which does not require the VM or runtime or 'standard libraries' or whatever. Not that I could implement such a thing myself. Codewitch could probably knock one out in a week. The linker and pre-compiled assemblies are just nice-to-haves.

                  jschell wrote:

                  Definitely a compiled language

                  Just being a compiled language isn't enough. I would further assert that basically no programming language is inherently "compiled" or "in

                  J Offline
                  J Offline
                  jschell
                  wrote on last edited by
                  #53

                  PIEBALDconsult wrote:

                  be implemented those languages? ... look only at the core of the syntax,

                  Then I believe my answer would be yes. The standard java compiler is written entirely in Java. It emits class files. Programmatically it could emit assembler. Not sure how C# does it but pretty sure process is doable. I don't know the details of JavaScript enough to know what is included. But I wouldn't be surprised if it was possible.

                  PIEBALDconsult wrote:

                  though BASIC is the only one I can think of quickly which has had successful implementations of both types.

                  I believe I remember seeing a C interpreter long ago. Before a lot of the new stuff was added.

                  PIEBALDconsult wrote:

                  so are they truly compiled or just interpreted?

                  Now days I suspect the distinction is meaningless. Certainly doesn't mean much to me because I know how compilers work and because they all emit something, the something is not as important in terms of a discussion like this. Looking it up apparently Lisp in 1952 was an interpreter.

                  PIEBALDconsult wrote:

                  though BASIC is the only one I

                  That might be a distinction, since often with BASIC, one didn't 'compile' it but rather just 'ran' it. It compiled and then ran all at one go. So there never was a binary type file. However I know that internally it was still distinct processes (compile, emitted code, then run the emitted code.) Perl is the same. I had the misfortune to work on a system which did NOT compile the language to any intermediate form. This was when I first learned how languages should work. In that system it would run lines by parsing them. So a for loop would reparse the for line every time the loop executed.

                  1 Reply Last reply
                  0
                  • H honey the codewitch

                    As I recall, node.js is a google project, not a community project. Maybe I'm wrong. But nodejs is probably the biggest single offender here, in terms of technology.

                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                    M Offline
                    M Offline
                    MSBassSinger
                    wrote on last edited by
                    #54

                    Quote:

                    As I recall, node.js is a google project, not a community project.

                    [Wikipedia article on Node.js](https://en.wikipedia.org/wiki/Node.js) "Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser." Interestingly, Ryan Dahl, who created node.js, also created the TypeScript engine.

                    H 2 Replies Last reply
                    0
                    • D Daniel Pfeffer

                      PIEBALDconsult wrote:

                      C# and Java "compile" to some intermediate form which runs on a VM/runtime, so are they truly compiled or just interpreted? Probably the latter.

                      There is no technical reason why one could not build hardware which has the Java bytecode as its machine language. Ditto for C#. Therefore, neither language is inherently interpreted.

                      Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                      J Offline
                      J Offline
                      jschell
                      wrote on last edited by
                      #55

                      Daniel Pfeffer wrote:

                      There is no technical reason why

                      There is a commercial reason though because when they tried that long ago with Pascal it failed.

                      D 1 Reply Last reply
                      0
                      • M MSBassSinger

                        Quote:

                        Can the Java VM or C# runtime (and .net framework) be implemented those languages? I doubt it.

                        C# supports .NET native compilation (since VS 2015), so you can compile C# in Visual Studio to machine code. Someone more proficient in Java could answer whether Java can be compiled to machine language. Also, C# is always run compiled to machine language. C# compiles to Microsoft Intermediate Language (MSIL), and the .NET VM then performs its "Just in Time", or JIT, to machine language when it is run, based on the specific environment in which it is run. The Java VM does something similar, so both do produce machine language differently and more efficiently than an interpreter would.

                        J Offline
                        J Offline
                        jschell
                        wrote on last edited by
                        #56

                        MSBassSinger wrote:

                        so you can compile C# in Visual Studio to machine code

                        How does it link?

                        MSBassSinger wrote:

                        Also, C# is always run compiled to machine language. C# compiles to Microsoft Intermediate Language (MSIL)

                        Java does the same. That however is not really applicable to this discussion.

                        1 Reply Last reply
                        0
                        • S Steve Naidamast

                          You used JavaScript, a crappy language if there ever was one, and you are surprised at its limitations... :doh:

                          Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

                          J Offline
                          J Offline
                          jschell
                          wrote on last edited by
                          #57

                          Steve Naidamast wrote:

                          a crappy language if there ever was one

                          You need to get out more? There are a vast number of languages. Many of them very annoying. The 'standard' for SQL comes to mind. SQL, as per the standard, is not even Turing complete. But actual implementations are. The successful ones always have stuff bolted on. That is the nature of progress. But consider one of the odd ball ones that I was reminded of recently is 'Erlang'. Doesn't even rate a percentage in Tiobe index. Yet I just found out that someone decided to build another language (Elixir) on top of that one. And someone decided to build an entire business around the usage of that (which is why I even heard of it.)

                          S 1 Reply Last reply
                          0
                          • S Steve Naidamast

                            From what I understand, the international standards community has not even had the language cleaned of its "dead code", making it more bloated than it has to be...

                            Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

                            J Offline
                            J Offline
                            jschell
                            wrote on last edited by
                            #58

                            Steve Naidamast wrote:

                            has not even had the language cleaned of its "dead code

                            That should not surprise anyone. Removing a feature from a language is always problematic.

                            1 Reply Last reply
                            0
                            • D Daniel Pfeffer

                              If you can build a Turing machine out of arrangements of electron charges (which you obviously can), then I would claim that it meets my definition of computer language. We don't usually think of that as a language, but it is no more arbitrary than using certain shapes to represent letters is.

                              Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                              J Offline
                              J Offline
                              jschell
                              wrote on last edited by
                              #59

                              Daniel Pfeffer wrote:

                              If you can build a Turing machine out of arrangements of electron charges (which you obviously can)

                              And computers are built using atoms but I am not going to claim that atoms are computers.

                              1 Reply Last reply
                              0
                              • 0 0x01AA

                                Not sure, but you answer with irony? But what I have in my mind is the next step from compiler-compiler

                                J Offline
                                J Offline
                                jschell
                                wrote on last edited by
                                #60

                                0x01AA wrote:

                                long dreamed of a universal 'meta language'

                                It cannot exist. That is why so many languages exist. Reasons vary but in general a need was not being met or the newer one was supposed to be better. If anything you can look to the many languages that use the Java VM and yet they are not Java. That is not the only language platform where other languages were built on it.

                                1 Reply Last reply
                                0
                                • M MSBassSinger

                                  Quote:

                                  As I recall, node.js is a google project, not a community project.

                                  [Wikipedia article on Node.js](https://en.wikipedia.org/wiki/Node.js) "Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser." Interestingly, Ryan Dahl, who created node.js, also created the TypeScript engine.

                                  H Offline
                                  H Offline
                                  honey the codewitch
                                  wrote on last edited by
                                  #61

                                  I realize it's open source as many google projects are, but I think google funds it and google staffers are primary contributors.

                                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                                  1 Reply Last reply
                                  0
                                  • M MSBassSinger

                                    Quote:

                                    As I recall, node.js is a google project, not a community project.

                                    [Wikipedia article on Node.js](https://en.wikipedia.org/wiki/Node.js) "Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser." Interestingly, Ryan Dahl, who created node.js, also created the TypeScript engine.

                                    H Offline
                                    H Offline
                                    honey the codewitch
                                    wrote on last edited by
                                    #62

                                    Digging further, it looks like I could be mistaken about Google's involvement. It looks like it gets a significant amount of it's support from the Linux Foundation, which also supports some other projects like zephyrproject that i use. OpenJS Foundation - Wikipedia[^] I'd say this counts as industry rather than community in any case, as LF is a major influencer in the direction of a lot of software technology these days.

                                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                                    1 Reply Last reply
                                    0
                                    • J jschell

                                      Steve Naidamast wrote:

                                      a crappy language if there ever was one

                                      You need to get out more? There are a vast number of languages. Many of them very annoying. The 'standard' for SQL comes to mind. SQL, as per the standard, is not even Turing complete. But actual implementations are. The successful ones always have stuff bolted on. That is the nature of progress. But consider one of the odd ball ones that I was reminded of recently is 'Erlang'. Doesn't even rate a percentage in Tiobe index. Yet I just found out that someone decided to build another language (Elixir) on top of that one. And someone decided to build an entire business around the usage of that (which is why I even heard of it.)

                                      S Offline
                                      S Offline
                                      Steve Naidamast
                                      wrote on last edited by
                                      #63

                                      I have done a ton of JavaScript in my very long career... I never liked it and never will... JavaScript was never designed for what it is being used for now. And the only reason people use it is because it is free and is part of the inherent infrastructure of web applications. This still doesn't mean that it is good language due to its popularity. And languages that continually have things "bolted" on them become bloated and sometimes even unusable. This pushes developers to find cleaner languages...

                                      Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

                                      J 1 Reply Last reply
                                      0
                                      • M MSBassSinger

                                        Quote:

                                        I'm covering my bases, making sure I have a broad understanding of relevant technologies used in software these days

                                        That is as good of a reason as any and makes good sense. I haven't had to learn JavaScript (to the depth of using it like you do when needed). So far, I have found plenty of work where C# (server app development, cloud development, web development with Blazor) is required, combined with experience in Azure native development. Converting JavaScript to C# (coding and architecture) is about as far as I have gone. If getting and keeping a job required me to learn JavaScript and using node.js, then I would do so. I have been fortunate so far. I know what the relevant technologies are, but I have been fortunate to be able to pick and choose which ones I work in. I applaud your flexibility with the projects you choose.

                                        H Offline
                                        H Offline
                                        honey the codewitch
                                        wrote on last edited by
                                        #64

                                        I probably won't end up taking a job doing web development as a primary thing, but I could see being drafted to develop a companion app to some embedded widget using Flutter or something. This not only keeps me in the loop, but it keeps me from getting rusty in general.

                                        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                                        1 Reply Last reply
                                        0
                                        • H honey the codewitch

                                          Bear with me, because as much as I am loath to holy roll about technology, I still have my peeves. I went about porting my DFA lexer engine from C# to TypeScript. It was primarily an exercise in teaching myself TypeScript, plus brushing up on my JS. So I implement the bones of it, and after adjusting my mental map to the JS way of doing things I got it mostly working. Then I went about trying to use a Map keyed by Sets. Turns out JS Map and Set will only compare by value for "scalar" types (presumably including strings) or otherwise it uses reference comparisons. You can't override your own equality mechanism either. how to customize object equality for javascript set - Stack Overflow[^] Consequently, there is no performant way to do subset construction to convert an NFA to a DFA in this language. I've seen others solve this problem by using string keys, but this falls down for machines of non-trivial size. Regex FA visualizer[^] is one example but I can basically crash it or stall it out for a long time at least with any non-trivial expression. This one also doesn't work properly besides, but I have no other link handy for you to try. This may be academic, but it is also basic computer science. A language should be able to allow you to implement computer sciencey algorithms and constructs - especially those that have been adapted to countless other programming languages. DFA by subset construction is basic. And you can't do it in JS. I can't even begin to imagine what LALR table generation would look like. You may be wondering why do I care? Because node.js. Because Angular Because React-Native it's not just for web front ends anymore. JS is an almost virulent technology these days. It needs to be, if not Turing complete at least cover the fundamentals, or you're just spreading garbage around. Without a way to do custom comparisons at the very least on hashed containers, your language isn't going to be able to do a lot of things other high level languages can accomplish handily. Is it even a "real" language? Is it ready for primetime, or is it just being adopted because we can? :~

                                          J Offline
                                          J Offline
                                          jochance
                                          wrote on last edited by
                                          #65

                                          honey the codewitch wrote:

                                          it's not just for web front ends anymore. JS is an almost virulent technology these days. It needs to be

                                          That is only people carrying around their golden hammer. It's nothing to do with it being "good" or "suited" and they do not care. It's being what web people know and by virtue of the explosion of the internet, web people putting up the numbers. Except it was always and only ever will be a lead hammer which we never really should've created to begin with. It's been literally a tyranny of the majority sort of situation now for many years where we must all agree to scratch our itches with angle grinders as a matter of populism.

                                          H 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups