• 1 Post
  • 25 Comments
Joined 1 year ago
cake
Cake day: July 11th, 2023

help-circle




  • That’s really only native compiled languages. Many popular languages, such as C#, Java, etc. Lie somewhere in between. They get compiled to intermediary byte code and only go native as the very final step when running. They run in a runtime environment that handles that final step to execute the code natively. For .NET languages that’s the CLR (Common Language Runtime).

    For .Net the process goes like this:

    • You write the code
    • Code is compiled to MSIL
    • At runtime when the MSIL is executing a JIT (just-in-time) compiler translates the MSIL into native code.
    • The native code is executed.

    Java has a similar process that runs on the JVM. This includes many, many languages that run on the JVM.

    JavaScript in the browser goes through a similar process these days without the intermediary byte code. Correction, JS in modern browsers also follow this process almost exactly. a JIT compiler compiles to bytecode which is then executed by the browser’s JS engine. Historically JS has been entirely interpreted but that’s no longer the case. Pure interpreted languages are pretty few and far between. Most we think of as interpreted are actually compiled, but transparently as far as the dev is concerned.

    Last, but certainly not least, Python is also a compiled language, it’s just usually transparent to the developer. When you execute a python program, the python compiler also produces an intermediary bytecode that is then executed by the python runtime.

    All that being said, I welcome any corrections or clarifications to what I’ve written.




  • I’m currently using KDE Plasma with i3. I like it fine. I love i3, and KDE works to tie everything together and add consistency for theming. Previously I was using i3 on XFCE, that was easier to set up. Plasma tends to require special configuration to make it play nice with i3, but once you’re over that hump it makes for a pretty decent combination.









  • That’s not true these days. You can try it yourself right in your browser’s dev console.

    These results are from Firefox’s console.

    0 == null == undefined
    > false
    0 == null
    > false
    0 == undefined
    > false
    null == undefined
    > true
    null === undefined
    > false
    

    And even in the one case where == says they are the same, you can fix that by making sure you are using === so that it doesn’t do type coercion for the comparison.




  • If you want that block quote to format correctly, don’t indent the >. That way it will turn out like this, instead of a single line that can’t fit on the screen without scrolling (some mobile clients like Sync, probably show it alright, but the web client certainly doesn’t.):

    No person shall be a Senator or Representative in Congress, or elector of President and Vice President, or hold any office, civil or military, under the United States, or under any State, who, having previously taken an oath, as a member of Congress, or as an officer of the United States, or as a member of any State legislature, or as an executive or judicial officer of any State, to support the Constitution of the United States, shall have engaged in insurrection or rebellion against the same, or given aid or comfort to the enemies thereof. But Congress may by a vote of two-thirds of each House, remove such disability.