home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.sys.apple2      Discussion about Apple II micros      56,720 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 56,129 of 56,720   
   fadden to David Schmidt   
   Re: Apple2 development toolchain   
   08 Apr 23 09:40:42   
   
   From: thefadden@gmail.com   
      
   On Saturday, April 8, 2023 at 9:07:45 AM UTC-7, David Schmidt wrote:   
   > On 4/6/23 4:17 PM, fadden wrote:    
   > > Every language has a runtime.   
   > If I write DiskStuff.py, you need a Python interpreter. If I write    
   > DiskStuff.jar, you need a Java runtime.    
   >    
   > If I write DiskStuff.exe and DiskStuff.app, you just need an OS.   
      
   There are two separate things: compilation to native form, and runtime support.   
      
   Compilation to native form can happen ahead of time or "just in time".    
   Java/C# might use an interpreter for something that bloats up when compiled   
   (like large static array initialization), but they generally compile   
   everything to native code before its    
   executed.  (It might even be using LLVM, though Java wasn't particularly well   
   suited IIRC.)   
      
   C/C++ need libcrt (compiled in), libc.so, and probably some other support   
   libraries; run "ldd" on a Linux executable.  There are very few fully   
   "stand-alone" executables anymore.  "/sbin/init" on my Ubuntu system is linked   
   against 36 shared libraries.  /   
   lib/x86_64-linux-gnu has 24MB of binaries in it.  If Java or .NET ships as   
   part of the operating system, then I would argue that a Java or .NET app is   
   equally unencumbered on that platform.   
      
   If a program can be distributed in a fully-encapsulated form, then the only   
   drawback vs. a gcc-compiled binary is potentially the distribution size.  With   
   modern storage that's more of a philosophical issue than a practical one.   
      
   Windows does an amazing job with software; you can still run creaky old   
   versions of CiderPress.  Apple discards all software every few years: 68K,   
   then PPC, then x86, then x64, then ARM.  They interpret the old stuff for a   
   few years then drop it.  Linux    
   effectively invalidates old executables when libc has a major change, and you   
   can't count on building an executable for one distribution and running it on   
   another.  Apps compiled to bytecode are easier to distribute and to carry   
   forward because each    
   individual app doesn't need to be recompiled (...unless you have   
   system-specific start code).   
      
   (FWIW, Linux *hardware* compatibility is outstanding... you can still use old   
   SCSI cards with the default distribution.  Windows breaks the world when they   
   update their driver model.)   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca