User:Micahwelf

From Rosetta Code
Revision as of 12:00, 28 September 2016 by rosettacode>Micahwelf (Created page with "{{mylangbegin}} {{mylang|Z Shell|Very Active}} {{mylang|Ada|Active Student}} {{mylang|Perl|Formerly Active}} {{mylang|PHP|Formerly Active}} {{mylang|Java|Total Novice Student}...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
My Favorite Languages
Language Proficiency
Z Shell Very Active
Ada Active Student
Perl Formerly Active
PHP Formerly Active
Java Total Novice Student
C Formerly Novice Student
C++ Formerly Novice Student
C Sharp Formerly Active Student
HTML Active
JavaScript Formerly Active Student

I am just a little obsessive about the things I create being done right. I also tend to be talented at doing many detail-orient things, so my time at a computer is often either interrupted or short. That said, I love learning, particularly in science, and have tried to carefully analyze every programming language I have access to, in order to decide which is worth my time to work hard and become good at. Many of the currently most popular languages, C#, Go, C++, Java, and more have attracted my attention, but only after long searching, and a few months of studying and working in C#, did I realize which were really reliable, simple, and most cross-platform capable. In the end, I settled on Ada being the best, but due to its insufficient cross-platform GUI support, Java, Go, Python/Kivy(Most notable) and Tcl/Tk are being considered. Beside the proper programming languages, I am an enthusiastic fan of Zsh, which I have been settled on for a long time. With MS Windows 10 now beginning to support an embedded native Linux environment, it is becoming practical for me to use Zsh anywhere with advanced programming/scripting being cross-platform and maintainable. The only major things a Zsh environment lacks are a GUI and the speed/compatibility of a natively compiled executable. So ultimately, The best programming environment for producing something and being truly cross-platform is probably going to be Zsh, Ada, and Python with Kivy. * After further reading into the subject, I found that Python has some serious issues with slow performance and needing dependencies - not a reason to not use it for my purpose. Also, against my previous belief, I can't find a professional grade Ada compiler for iOS. This automatically bumps Go to the top of the list for cross-platform. Ada is still my favorite, and iOS will still run Ada apps via direct content drawing from a web server (Gnoga), but that requires a local web-kit-app of some kind, so I can only hope a compiler will be made for iOS someday and have to divide my efforts with Go for now.

Note: By cross-platform, I mean to quantify how effectively code written will compile and run on all major operating systems with little or no variation, including: MS Windows, Mac OS X, Linux, Android, iOS, FreeBSD, OS/2, and the most major other Unix-like operating systems. If one or two of the first five is is not supported, it means the language is much less cross-platform, even if is well supported on the others.

  • What I found was that Java is the most well established as cross-platform, but with different support levels and different APIs on different systems, most notably not supporting iOS, and having a C-like appearance it is not the most simple and not completely cross-platform.
  • Go is a magnificent language that is probably the most cross-platform native-compiled language, yet still young - with new areas of development likely being worked on.
  • C# is also marvelously well constructed and easy to learn, but it has a few serious design glitches. Most notable is the structural dependence on the MS Windows operating system's design, which had to be emulated/implemented from scratch for other operating systems, dividing the support community into different groups trying to solve the problem, namely Mono and Xamarin. Neither are truly cross-platform (see Note) and production ready. Also, because certain features made for very long, bracket-heavy code, an alternative style is also used. With either being used, the language seriously loses the value of simplicity and readability.
  • C++ and C are both good for interfacing with from a variety of languages and are very useful, but simply put, they (more C than C++) are accident prone, imprecise languages that are not easy to read. C is a low level language, so work done with it will be slow and tend to not be cross-platform, despite it being supported (or mostly supported - iOS) on all platforms. C++ is more mid-level, with clever unbounded/vector string handling and access to high-level features through object-oriented types and language-standard updates that significantly improved the language over the years. Though strong, C++ has accumulated way too many syntax and library enhancements over the years, making it no more desirable than C. Both C and C++ libraries and code are long overdue for a complete conversion to an easier to read, more maintainable language and every year that is put off we as a people become more deeply stuck in the bog of inefficiency and bugs that are created by working in them.
  • Tcl/Tk is a marvelous and most efficient scripting environment. Also, because it can be statically embedded into other software, it is more useful and efficient than typical work in Java or GTK (which I like, by the way). It would be my first pick for working with Ada, but because of insufficient support in the latest years, it is altogether lacking any dependable support on Android and iOS (AndroWISH is for pure TCL programming and not really for integrating into other software). I still intend to use Tcl/Tk for my small programs and scripting with Zsh, but it is not worth my time becoming very good at when I can't produce anything Sale-worthy on all important platforms.
  • Python/Kivy is the last and best GUI tool I think I have found. Python is well established and runs almost anywhere that I might be concerned about. It is designed with the ideal that one python script using Kivy will produce the same result graphically on all operating systems. It also is designed with the future-thinking expectation that all programming will have to accommodate all the newest input features of modern mobile devices. I have not had the chance to work in it yet, but it has become my main target to work with Kivy as my GUI front end for all programming of compiled languages by interfacing my Ada programs with Python and having python do all the human-interactivity work, reporting to Ada which will do all the computational work. This way a native executable can run (Ada) and a cross-platform, simple scripting platform (Python) can do all the facilitating.
  • Ada is too good for words. It is well supported, started by the USA Department of Defence, and almost as old as C. It has all the coveted features of modern programming languages, is extremely precise and strongly typed. It is both a high-level language, with cross-platform-stable file management, unbounded strings, various kinds of list-like containers and much more; and a low-level language with Assembly Language being embedded directly as procedures or functions on a specified data type and C/Fortran/other procedures and functions being importable for all direct operating system calls. The language has hardly changed at all over the last twenty years and yet it has full language-implemented multitasking and works with the modern world very well.