{"id":49157,"date":"2026-07-14T04:21:53","date_gmt":"2026-07-14T04:21:53","guid":{"rendered":"https:\/\/speedinet.co.za\/?p=49157"},"modified":"2026-07-14T04:21:53","modified_gmt":"2026-07-14T04:21:53","slug":"programming-languages-i-have-known-and-loved-and-hated","status":"publish","type":"post","link":"https:\/\/speedinet.co.za\/?p=49157","title":{"rendered":"Programming Languages I Have Known and Loved (and Hated)"},"content":{"rendered":"<div>\n<div class=\"simplesocialbuttons simplesocial-simple-icons simplesocialbuttons_inline simplesocialbuttons-align-left post-52888 post  simplesocialbuttons-inline-no-animation\">\n\t\t<button class=\"ssb_fbshare-icon\" rel=\"nofollow\" target=\"_blank\" aria-label=\"Facebook Share\" data-href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/lowendbox.com\/blog\/programming-languages-i-have-known-and-loved-and-hated\/\" onclick=\"javascript:window.open(this.dataset.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;\"><br \/>\n\t\t\t\t\t\t<span class=\"icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 16 16\" class=\"_1pbq\" color=\"#ffffff\"><path fill=\"#ffffff\" fill-rule=\"evenodd\" class=\"icon\" d=\"M8 14H3.667C2.733 13.9 2 13.167 2 12.233V3.667A1.65 1.65 0 0 1 3.667 2h8.666A1.65 1.65 0 0 1 14 3.667v8.566c0 .934-.733 1.667-1.667 1.767H10v-3.967h1.3l.7-2.066h-2V6.933c0-.466.167-.9.867-.9H12v-1.8c.033 0-.933-.266-1.533-.266-1.267 0-2.434.7-2.467 2.133v1.867H6v2.066h2V14z\"><\/path><\/svg><\/span><br \/>\n\t\t\t\t\t\t<span class=\"simplesocialtxt\">Share <\/span> <\/button><br \/>\n<button class=\"ssb_tweet-icon\" rel=\"nofollow\" target=\"_blank\" aria-label=\"Twitter Share\" data-href=\"https:\/\/twitter.com\/intent\/tweet?text=Programming+Languages+I+Have+Known+and+Loved+%28and+Hated%29&amp;url=https:\/\/lowendbox.com\/blog\/programming-languages-i-have-known-and-loved-and-hated\/&amp;via=LowEndNetwork\" onclick=\"javascript:window.open(this.dataset.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;\"><br \/>\n\t\t\t\t\t\t<span class=\"icon\"><svg viewbox=\"0 0 16 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M4.9 0H0L5.782 7.7098L0.315 14H2.17L6.6416 8.8557L10.5 14H15.4L9.3744 5.9654L14.56 0H12.705L8.5148 4.8202L4.9 0ZM11.2 12.6L2.8 1.4H4.2L12.6 12.6H11.2Z\" fill=\"#fff\"><\/path><\/svg><\/span><i class=\"simplesocialtxt\">Post <\/i><\/button><br \/>\n<button class=\"ssb_linkedin-icon\" rel=\"nofollow\" target=\"_blank\" aria-label=\"LinkedIn Share\" data-href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https:\/\/lowendbox.com\/blog\/programming-languages-i-have-known-and-loved-and-hated\/\" onclick=\"javascript:window.open(this.dataset.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;\"><br \/>\n\t\t\t\t\t\t<span class=\"icon\"> <svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\" width=\"15px\" height=\"14.1px\" viewbox=\"-301.4 387.5 15 14.1\" enable-background=\"new -301.4 387.5 15 14.1\" xml:space=\"preserve\"> <g id=\"XMLID_398_\"> <path id=\"XMLID_399_\" fill=\"#FFFFFF\" d=\"M-296.2,401.6c0-3.2,0-6.3,0-9.5h0.1c1,0,2,0,2.9,0c0.1,0,0.1,0,0.1,0.1c0,0.4,0,0.8,0,1.2 c0.1-0.1,0.2-0.3,0.3-0.4c0.5-0.7,1.2-1,2.1-1.1c0.8-0.1,1.5,0,2.2,0.3c0.7,0.4,1.2,0.8,1.5,1.4c0.4,0.8,0.6,1.7,0.6,2.5 c0,1.8,0,3.6,0,5.4v0.1c-1.1,0-2.1,0-3.2,0c0-0.1,0-0.1,0-0.2c0-1.6,0-3.2,0-4.8c0-0.4,0-0.8-0.2-1.2c-0.2-0.7-0.8-1-1.6-1 c-0.8,0.1-1.3,0.5-1.6,1.2c-0.1,0.2-0.1,0.5-0.1,0.8c0,1.7,0,3.4,0,5.1c0,0.2,0,0.2-0.2,0.2c-1,0-1.9,0-2.9,0 C-296.1,401.6-296.2,401.6-296.2,401.6z\"><\/path> <path id=\"XMLID_400_\" fill=\"#FFFFFF\" d=\"M-298,401.6L-298,401.6c-1.1,0-2.1,0-3,0c-0.1,0-0.1,0-0.1-0.1c0-3.1,0-6.1,0-9.2 c0-0.1,0-0.1,0.1-0.1c1,0,2,0,2.9,0h0.1C-298,395.3-298,398.5-298,401.6z\"><\/path> <path id=\"XMLID_401_\" fill=\"#FFFFFF\" d=\"M-299.6,390.9c-0.7-0.1-1.2-0.3-1.6-0.8c-0.5-0.8-0.2-2.1,1-2.4c0.6-0.2,1.2-0.1,1.8,0.2 c0.5,0.4,0.7,0.9,0.6,1.5c-0.1,0.7-0.5,1.1-1.1,1.3C-299.1,390.8-299.4,390.8-299.6,390.9L-299.6,390.9z\"><\/path> <\/g> <\/svg> <\/span><br \/>\n\t\t\t\t\t\t<span class=\"simplesocialtxt\">Share<\/span> <\/button><br \/>\n <button class=\"ssb_reddit-icon\" rel=\"nofollow\" target=\"_blank\" aria-label=\"Reddit Share\" data-href=\"https:\/\/reddit.com\/submit?url=https:\/\/lowendbox.com\/blog\/programming-languages-i-have-known-and-loved-and-hated\/&amp;title=Programming+Languages+I+Have+Known+and+Loved+%28and+Hated%29\" onclick=\"javascript:window.open(this.dataset.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;\"><br \/>\n\t\t\t\t\t\t<span class=\"icon\"> <svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\" width=\"430.117px\" height=\"430.117px\" viewbox=\"0 0 430.117 430.117\" style=\"enable-background:new 0 0 430.117 430.117;\" xml:space=\"preserve\"> <g> <path id=\"reddit\" d=\"M307.523,231.062c1.11,2.838,1.614,5.769,1.614,8.681c0,5.862-2.025,11.556-5.423,16.204 c-3.36,4.593-8.121,8.158-13.722,9.727h0.01c-0.047,0.019-0.094,0.019-0.117,0.037c-0.023,0-0.061,0.019-0.079,0.019 c-2.623,0.896-5.312,1.316-7.98,1.316c-6.254,0-12.396-2.254-17.306-6.096c-4.872-3.826-8.56-9.324-9.717-15.845h-0.01 c0-0.019,0-0.042-0.009-0.069c0-0.019,0-0.038-0.019-0.065h0.019c-0.364-1.681-0.551-3.36-0.551-5.021 c0-5.647,1.923-11.07,5.097-15.551c3.164-4.453,7.626-7.99,12.848-9.811c0.019,0,0.038-0.01,0.038-0.01 c0.027,0,0.027-0.027,0.051-0.027c2.954-1.092,6.072-1.639,9.157-1.639c5.619,0,11.154,1.704,15.821,4.821 c4.611,3.066,8.354,7.561,10.23,13.143c0.019,0.037,0.019,0.07,0.037,0.103c0,0.037,0.019,0.057,0.037,0.084H307.523z M290.329,300.349c-2.202-1.428-4.751-2.291-7.448-2.291c-2.175,0-4.434,0.621-6.445,1.955l0,0 c-19.004,11.342-41.355,17.558-63.547,17.558c-16.65,0-33.199-3.514-48.192-10.879l-0.077-0.037l-0.075-0.028 c-2.261-0.924-4.837-2.889-7.647-4.76c-1.428-0.925-2.919-1.844-4.574-2.521c-1.633-0.695-3.447-1.181-5.386-1.181 c-1.605,0-3.292,0.359-4.957,1.115c-0.086,0.033-0.168,0.065-0.252,0.098h0.009c-2.616,0.999-4.66,2.829-5.974,4.994 c-1.372,2.23-2.046,4.826-2.046,7.411c0,2.334,0.551,4.667,1.691,6.786c1.085,2.007,2.754,3.762,4.938,4.938 c21.429,14.454,46.662,21.002,71.992,20.979c22.838,0,45.814-5.287,66.27-14.911l0.107-0.065l0.103-0.056 c2.697-1.597,6.282-3.029,9.661-5.115c1.671-1.064,3.304-2.296,4.704-3.897c1.4-1.591,2.525-3.551,3.16-5.875v-0.01 c0.266-1.026,0.392-2.025,0.392-3.024c0-1.899-0.467-3.701-1.241-5.32C294.361,303.775,292.504,301.778,290.329,300.349z M139.875,265.589c0.037,0,0.086,0.014,0.128,0.037c2.735,0.999,5.554,1.493,8.345,1.493c6.963,0,13.73-2.852,18.853-7.5 c5.115-4.662,8.618-11.257,8.618-18.775c0-0.196,0-0.392-0.009-0.625c0.019-0.336,0.028-0.705,0.028-1.083 c0-7.458-3.456-14.08-8.522-18.762c-5.085-4.686-11.836-7.551-18.825-7.551c-1.867,0-3.769,0.219-5.628,0.653 c-0.028,0-0.049,0.009-0.077,0.009c0,0-0.019,0-0.028,0c-9.252,1.937-17.373,8.803-20.37,18.248l0,0v0.01 c0,0.019-0.009,0.037-0.009,0.037c-0.861,2.586-1.262,5.255-1.262,7.896c0,5.787,1.913,11.426,5.211,16.064 c3.269,4.56,7.894,8.145,13.448,9.819C139.816,265.561,139.835,265.571,139.875,265.589z M430.033,198.094v0.038 c0.066,0.94,0.084,1.878,0.084,2.81c0,10.447-3.351,20.493-8.941,29.016c-5.218,7.976-12.414,14.649-20.703,19.177 c0.532,4.158,0.84,8.349,0.84,12.526c-0.01,22.495-7.766,44.607-21.272,62.329v0.009h-0.028 c-24.969,33.216-63.313,52.804-102.031,62.684h-0.01l-0.027,0.023c-20.647,5.013-41.938,7.574-63.223,7.574 c-31.729,0-63.433-5.722-93.018-17.585l-0.009-0.028h-0.028c-30.672-12.643-59.897-32.739-77.819-62.184 c-9.642-15.71-14.935-34.141-14.935-52.659c0-4.19,0.283-8.387,0.843-12.536c-8.072-4.545-15.063-10.99-20.255-18.687 c-5.542-8.266-9.056-17.95-9.5-28.187v-0.04v-0.037v-0.082c0.009-14.337,6.237-27.918,15.915-37.932 c9.677-10.011,22.896-16.554,37.075-16.554c0.196,0,0.392,0,0.588,0c1.487-0.101,2.987-0.159,4.488-0.159 c7.122,0,14.26,1.153,21.039,3.752l0.037,0.028l0.038,0.012c5.787,2.437,11.537,5.377,16.662,9.449 c1.661-0.871,3.472-1.851,5.504-2.625c31.064-18.395,67.171-25.491,102.358-27.538c0.306-17.431,2.448-35.68,10.949-51.65 c7.08-13.269,19.369-23.599,34-27.179l0.061-0.03l0.079-0.009c5.573-1.078,11.192-1.575,16.774-1.575 c14.869,0,29.561,3.521,43.31,9.017c6.086-9.185,14.776-16.354,24.97-20.375l0.098-0.056l0.098-0.037 c5.983-1.864,12.303-2.954,18.646-2.954c6.692,0,13.437,1.223,19.756,4.046v-0.023c0.009,0.023,0.019,0.023,0.019,0.023 c0.047,0.016,0.084,0.044,0.116,0.044c9.059,3.489,16.727,9.937,22.164,17.95c5.442,8.048,8.644,17.688,8.644,27.599 c0,1.827-0.103,3.657-0.317,5.489l-0.019,0.037c0,0.028,0,0.068-0.01,0.096c-1.063,12.809-7.551,24.047-16.736,32.063 c-9.24,8.048-21.207,12.909-33.49,12.909c-1.97,0-3.958-0.11-5.937-0.374c-12.182-0.931-23.541-6.826-31.886-15.595 c-8.373-8.755-13.768-20.453-13.768-33.08c0-0.611,0.056-1.237,0.074-1.843c-11.435-5.092-23.578-9.316-35.646-9.306 c-1.746,0-3.491,0.096-5.237,0.273h-0.019c-9.035,0.871-17.436,6.566-21.506,14.757v0.009v0.028 c-6.179,12.034-7.411,26.101-7.598,40.064c34.639,2.259,69.483,10.571,100.043,28.138h0.047l0.438,0.259 c0.579,0.343,1.652,0.931,2.623,1.449c2.101-1.704,4.322-3.456,6.856-4.966c9.264-6.17,20.241-9.238,31.223-9.238 c4.872,0,9.749,0.621,14.481,1.834h0.019l0.196,0.058c0.07,0.01,0.121,0.033,0.178,0.033v0.009 c11.183,2.845,21.3,9.267,28.917,17.927c7.612,8.674,12.731,19.648,13.73,31.561v0.025H430.033z M328.002,84.733 c0,0.469,0.01,0.95,0.057,1.44v0.028v0.056c0.224,6.018,3.065,11.619,7.383,15.756c4.34,4.14,10.1,6.702,15.942,6.725h0.08h0.079 c0.42,0.033,0.85,0.033,1.26,0.033c5.899,0.009,11.752-2.532,16.148-6.655c4.405-4.144,7.309-9.78,7.542-15.849l0.009-0.028v-0.037 c0.038-0.464,0.057-0.903,0.057-1.377c0-6.247-2.922-12.202-7.496-16.612c-4.555-4.406-10.688-7.136-16.735-7.12 c-1.951,0-3.884,0.266-5.778,0.854l-0.065,0.005l-0.056,0.023c-4.984,1.295-9.656,4.368-13.012,8.449 C330.046,74.486,328.002,79.508,328.002,84.733z M72.312,177.578c-4.63-2.156-9.418-3.696-14.15-3.676 c-0.794,0-1.597,0.047-2.39,0.133h-0.11l-0.11,0.014c-6.795,0.187-13.653,3.15-18.801,7.899 c-5.152,4.732-8.559,11.122-8.821,18.167v0.065l-0.012,0.058c-0.046,0.57-0.065,1.137-0.065,1.683 c0,4.345,1.333,8.545,3.593,12.368c1.673,2.847,3.867,5.441,6.348,7.701C45.735,204.602,58.142,189.845,72.312,177.578z M374.066,262.635c0-15.5-5.592-31.069-14.646-43.604c-18.053-25.119-46.055-41.502-75.187-50.636l-0.205-0.072 c-5.592-1.715-11.238-3.234-16.933-4.534c-17.025-3.876-34.48-5.806-51.917-5.806c-23.414,0-46.827,3.465-69.245,10.379 c-29.125,9.243-57.221,25.51-75.233,50.71v0.019c-9.129,12.587-14.475,28.208-14.475,43.763c0,5.727,0.716,11.453,2.23,17.025 l0.019,0.01c3.278,12.508,9.689,23.671,17.989,33.393c8.295,9.745,18.472,18.058,29.176,24.839c2.371,1.47,4.751,2.87,7.187,4.237 c31.094,17.356,66.898,24.964,102.445,24.964c6.012,0,12.06-0.214,18.033-0.644c35.797-2.959,71.742-13.525,100.8-35.115 l0.01-0.023c9.25-6.837,17.818-15.112,24.595-24.525c6.805-9.418,11.789-19.947,14.002-31.382V275.6l0.009-0.01 C373.627,271.32,374.066,266.985,374.066,262.635z M402.32,200.95c-0.009-3.762-0.868-7.507-2.753-11l-0.047-0.044l-0.019-0.056 c-2.521-5.19-6.479-9.11-11.248-11.782c-4.77-2.69-10.352-4.056-15.952-4.056c-5.063,0-10.1,1.132-14.57,3.379 c14.216,12.344,26.687,27.179,34.746,44.636c2.595-2.259,4.808-5.018,6.464-8.084C401.098,209.92,402.32,205.405,402.32,200.95z\"><\/path><\/g><\/svg><\/span><br \/>\n\t\t\t\t\t\t<span class=\"simplesocialtxt\">reddit <\/span><\/button>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-52894\" src=\"https:\/\/lowendbox.com\/wp-content\/uploads\/2026\/06\/programming-languages-many-300x300.png\" alt=\"Programming Languages\" width=\"300\" height=\"300\" srcset=\"https:\/\/lowendbox.com\/wp-content\/uploads\/2026\/06\/programming-languages-many-300x300.png 300w, https:\/\/lowendbox.com\/wp-content\/uploads\/2026\/06\/programming-languages-many-1024x1024.png 1024w, https:\/\/lowendbox.com\/wp-content\/uploads\/2026\/06\/programming-languages-many-150x150.png 150w, https:\/\/lowendbox.com\/wp-content\/uploads\/2026\/06\/programming-languages-many-768x768.png 768w, https:\/\/lowendbox.com\/wp-content\/uploads\/2026\/06\/programming-languages-many-1536x1536.png 1536w, https:\/\/lowendbox.com\/wp-content\/uploads\/2026\/06\/programming-languages-many.png 2000w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\">I ran into a polyglot the other day who asked me how many languages I knew.\u00a0 I flashed back to a moment circa 1977 when I was a young kid in a summer program to learn about computers.\u00a0 We were sitting at terminals and someone asked a hacker (in the good sense of that word) how many languages he knew.<\/p>\n<p>The hacker was about 19, with long hair in a pony tail, wearing jeans, hiking boots, round-rimmed John Lennon glasses, and a T-shirt with some kind of rock band logo on it.\u00a0 He was the epitome of the cool nerdy hacker, leaning over our shoulders as we typed out BASIC programs and giving us tips, excited to share his craft.<\/p>\n<p>\u201cWell, if you mean human languages, only one fluently,\u201d he said.\u00a0 \u201cBut if you mean computer languages, well, let\u2019s see\u2026\u201d\u00a0 He started counting them off on his fingers.\u00a0 The only ones I remember now are BASIC (because I was learning it) and SNOBOL because the name was funny.<\/p>\n<p>So I answered my polyglot acquaintance \u201cWell, if you mean human languages, only one fluently. But if you mean computer languages\u2026\u201d<\/p>\n<p>Then later when I got home, I made a list, and it was surprisingly long.\u00a0 Especially considering that I\u2019ve never had a development job in my life.\u00a0 I\u2019ve worked in IT for 30+ years but it\u2019s mostly been on the administrative side, with a ton of hobbyist tinkering as well.\u00a0 Still, even as a sysadmin or DBA, you can end up writing some pretty huge codebases.\u00a0 The biggest application I wrote for work is about 80K LOC (mostly Python, SQL, and shell).<\/p>\n<h2 class=\"p1\"><b>Expert-Level Knowledge<\/b><\/h2>\n<p>Definition: I\u2019m probably as good as anyone in these languages.<\/p>\n<ul>\n<li class=\"p1\"><strong>bash\/ksh Shell:<\/strong>\u00a0 I spent several years in the early 2000s doing ksh88, which I hated because I already was exploited everything Bash could do and going back to 1988 was painful.\u00a0 You can write amazing things with Bash\u2026sure, eventually you get to a point where you should just use Perl or Python, but with associative arrays, signal and exit traps, coroutines, math, and more, it can be a very productive environment, at least for what it\u2019s meant to do.\u00a0 And it\u2019s on every Linux server so it\u2019s always at hand.<\/li>\n<li class=\"p1\"><strong>Perl: <\/strong>Since Perl 3.\u00a0 I learned sed and awk and shell first, and then Perl was magical as it knit them all together.\u00a0 I\u2019m probably the only person in the world who learned object-oriented programming concepts through Perl.\u00a0 I still love Perl and use it all the time for text-processing and sysadmin scripts, though I wouldn\u2019t recommend anyone start learning it in 2026.\u00a0 It\u2019s very fast and while it has a reputation for being \u201cwrite only,\u201d you can write very clean, readable Perl code if you wish.<\/li>\n<li><strong>Regular Expressions:\u00a0<\/strong> Not a programming language per se, but since there are entire books written about it, I\u2019m going to list it.\u00a0 Learning regex has paid untold dividends over the years.\u00a0 I\u2019ve seen so many people struggle with them, but once you have them down, you\u2019ll use them everywhere with ease.\u00a0 I see people write long blocks of code to strip this, replace that, concat these things together when they could do it all in one regex.<\/li>\n<\/ul>\n<h2 class=\"p1\"><b>Competent<\/b><\/h2>\n<p>Definition: I can read and write in these languages, and generally understand what people are doing with them.\u00a0 I\u2019ve written large-scale code with them.<\/p>\n<ul>\n<li class=\"p1\"><strong>Python:<\/strong> I have a love\/hate thing with Python.\u00a0 I think the whitespace indentation is stupid and always have.\u00a0 I can make my code look nice without someone forcing their ideas on me.\u00a0 Notably, no other language has ever considered this \u201cfeature\u201d.\u00a0 I do love Python\u2019s batteries-included mindset, which may be its greatest idea.\u00a0 People often try to be too clever with Python, but I think the strength is in clarity, not cleverness.\u00a0 I have run into some scaling issues with Python due to the GIL (and used Perl instead), though I hear that\u2019s going away Real Soon Now.\u00a0 I like Python, but I\u2019ve never fallen in love with it.\u00a0 Still, it\u2019s a very handy language.<\/li>\n<li><strong>PHP:\u00a0<\/strong>Once you know Perl and Python, PHP is a snap.\u00a0 I should caveat this by saying that knowing PHP is one thing, and knowing Laravel is another.\u00a0 To really use PHP in 2026, you need to know Laravel or some other framework.\u00a0 I know PHP and can passably hack on Laravel but I\u2019m not strong on the latter.\u00a0 And of course, to know PHP\/Laravel you have to know HTML\/CSS\u2026I\u2019m OK on those but have never been a strong web dev.\u00a0 I can\u2019t say I love PHP or even like PHP, but it\u2019s a sort of dollar store common denominator of languages.<\/li>\n<\/ul>\n<blockquote>\n<p><strong>Digression:<\/strong> The longer I\u2019ve written code, the more I\u2019ve grown to prefer strongly-typed languages and languages that catch errors at compile-time instead of at run-time.\u00a0 Perl and Python are fun but you end up writing oceans of test cases for things that strongly-typed languages would discover at compile-time.<\/p>\n<\/blockquote>\n<ul>\n<li><strong>Go:\u00a0<\/strong> I love Go!\u00a0 It\u2019s such a fun language.\u00a0 Yes, it can be a little boiler-platey but I think it\u2019s fun, fast, and also batteries-included like Python.\u00a0 I love the concurrency parts of the language.\u00a0 There is so much to like with Go.\u00a0 And it\u2019s strongly typed.\u00a0 It\u2019s the right meeting point of performance, low-level ability, high-level concepts, and robust standard library.<\/li>\n<li><strong>SQL:<\/strong> Like regex, not a programming language per se, but such a valuable skill.\u00a0 I don\u2019t use it like data analysts who write page-long queries, but I know it very well.\u00a0 Just mastering SQL alone is still an employable skill.\u00a0 SQL is one of the most enduring technologies.\u00a0 Once you get set algebra down and \u201cthink in SQL,\u201d you can do amazing things.<\/li>\n<li><strong>Java:\u00a0<\/strong>Like PHP, learning the language is one thing and then what you do with it is another level.\u00a0 I know Java pretty well but I don\u2019t know Swing, Spring, etc.\u00a0 I like Java, despite its warts, and still maintain a Java codebase that I use at home.\u00a0 I wish it was compile-able\u2026my experiments have Graal have resulted in extraordinary compile times and runtime crashes the moment you try to use advanced language features.\u00a0 Still, Java feels \u201chomey\u201d to me and while it\u2019s started to evolve in kitchen sink directions, it\u2019s easy to write.\u00a0 Though as the joke goes, \u201cI had a problem so I wrote some Java.\u00a0 So I now I have a ProblemFactory.\u201d \ud83d\ude02<\/li>\n<li><strong>PL\/SQL: <\/strong>The programming language built into the Oracle RDBMS.\u00a0 I learned it for work.\u00a0 It\u2019s horrible.\u00a0 But it\u2019s not hard to learn if you know other languages.<\/li>\n<li><strong>Redcode:<\/strong> An assembly-like language used to play Core War.\u00a0 I ran a Core Wars server in the mid-90s.\u00a0 I was never a top 10% player but did OK on the public king of the hill servers.\u00a0 It was my first real exposure to assembly-type programming and I got a lot out of it.<\/li>\n<\/ul>\n<h2 class=\"p1\"><b>Don\u2019t Regularly Use<\/b><\/h2>\n<p>Definition: I used to be good in these or occasionally pick them up, but not enough to really say I\u2019ve mastered them.<\/p>\n<ul>\n<li><strong>Javascript:<\/strong> I mean, sure, I\u2019ve mastered Javascript but that isn\u2019t much of an accomplishment because it\u2019s such a simple language.\u00a0 But like PHP or Java, the language itself is only part of it.\u00a0 You could be a Javascript master, but that doesn\u2019t mean you\u2019ll understand React or some other framework, and that\u2019s where the real work is.\u00a0 Every now and then I get an idea and write a bunch of Javascript, but I never keep up with it\u2026but it seems that the next time I want to use it, it\u2019s trivial to get back to that level of proficiency.\u00a0 However, I\u2019ve never really gone deep into React or one of the other frameworks, and I\u2019m not a strong web dev.\u00a0 One thing I strongly hate: npm.\u00a0 Having a billion random unvetted authors contributing to your code base is abhorrent.<\/li>\n<li><strong>Awk:<\/strong> I love awk, but after learning Perl, I never used it much except for one-liners and pipeliners.\u00a0 If you only know it from short bits in shell scripts, Awk is surprisingly powerful and a full-featured language.\u00a0 But I don\u2019t think there\u2019s anything it can do that Perl can\u2019t.<\/li>\n<li><strong>C:\u00a0<\/strong>When I learned C, people wrote applications in C.\u00a0 In 2026, C is used mainly for (1) the Linux and BSD kernels and other Unix system code, (2) embedded, and (3) a language other languages are transpiled into.\u00a0 I know C well but any C project quickly becomes a DSL based on what you\u2019re trying to do (kernel, embedded, etc.).\u00a0 I do enjoy C, but my experience is more application-level than system-level and I don\u2019t have a lot of uses for it today.\u00a0 Besides, everything C is being rewritten in Rust anyway.<\/li>\n<li><strong>COBOL:\u00a0<\/strong>This language has a bad rap but I like it.\u00a0 The record-handling capabilities are awesome.\u00a0 If you need to rip through a billion records, COBOL is amazing, particularly the way it populates very complex variable structures automatically.\u00a0 There are a lot of nice \u201cdon\u2019t worry about\u201d things with COBOL \u2013 for example, you\u2019re not worrying about number limits and it works with decimal math (not binary floating point).\u00a0 Yes, the language is insanely wordy and bizarre by modern standards, and admittedly my love for it is probably nostalgia-fueled, but I enjoy COBOL.<\/li>\n<\/ul>\n<h2 class=\"p1\"><b>Have Used But Mostly Forgotten<\/b><\/h2>\n<ul>\n<li><strong>Assembler:<\/strong> I\u2019ve written some, but not a lot, and it\u2019s a skill that erodes quickly.\u00a0 I remember more Redcode assembler than x86.<\/li>\n<li><strong>Scratch:<\/strong> I used to write Scratch code with my daughter and it\u2019s fun.\u00a0 Trivial to relearn.<\/li>\n<li><strong>Lisp:\u00a0<\/strong>I learned Lisp because everyone told me it was amazing, mind-expanding journey.\u00a0 I guess I didn\u2019t get enough into it to have my mind expanded.\u00a0 I wrote and published an emacs extension during one of my flirtations with that language.\u00a0 I should probably spend more time with Lisp, though I think today I\u2019d use one of the modern versions like Clojure or Janet.<\/li>\n<li><strong>FORTRAN: <\/strong>In the late 90s, I supported some satellite engineers who did a lot of work with NASTRAN, which was implemented in FORTRAN.\u00a0 I ended up learning some FORTRAN because when their jobs would error out, they\u2019d ask me why and 99% of the time it was some application issue.\u00a0 I remember writing some FORTRAN extensions.\u00a0 I felt like a 1950s rocket scientist.<\/li>\n<li><strong>BASIC:\u00a0<\/strong>My first language, on a variety of systems, from 70s mainframes to early personal computers.\u00a0 Once I discovered C, I never looked at BASIC again.\u00a0 I never used VisualBASIC.<\/li>\n<li><strong>PASCAL:\u00a0<\/strong>I met a kid in the 80s who claimed he\u2019d learned PASCAL in a weekend, so I figured if he could it, so could I.\u00a0 I went to the library and got a PASCAL book.\u00a0 Coming from C, it was pretty simple but I don\u2019t think I ever did much with it beyond the book\u2019s exercises.\u00a0 I don\u2019t think there\u2019s much of a need to learn PASCAL.<\/li>\n<li><strong>C#:\u00a0<\/strong>I remember liking C#, but I never enjoyed Windows very much.\u00a0 It\u2019s ++Java, so benefits from reimplementing all of Sun\u2019s ideas.<\/li>\n<li><strong>Batch (Windows):<\/strong> There\u2019s more to this language than most people realize, but it\u2019s still very primitive compared to the Unix shell.<\/li>\n<li><strong>Lua:<\/strong> For a time, Angband was partially implemented in Lua.\u00a0 I picked up a book on it and wrote some Angband code.\u00a0 I like Lua, though I don\u2019t think there is anything all that remarkable about it.<\/li>\n<li><strong>AppleScript:\u00a0<\/strong>Every now and then I need to automate something on my Mac and remember this language.\u00a0 It\u2019s one of those \u201cforget it until you need it, then quickly relearn it\u201d languages.<\/li>\n<li><strong>DBASE:\u00a0<\/strong>Now we\u2019re talking\u20261980s database GLORY!\u00a0 I loved DBASE and it\u2019s a fine language, though it\u2019s pretty archaic today.\u00a0 At the time, relational databases were strictly proprietary software that ran on big servers.\u00a0 Today, sqlite or Postgres can do everything DBASE can do but in the 80s, DBASE was king.\u00a0 Enjoy this soap opera about it.<\/li>\n<li><strong>PL\/I:\u00a0<\/strong>During some of my flirtations with MVS 3.8j, I picked up some PL\/I and liked it.\u00a0 But I never wrote large-scale code with it.<\/li>\n<li><strong>JCL: <\/strong>The mainframe batch language.\u00a0 I\u2019ve known so many mainframers who have a passionate love for JCL.\u00a0 I do love the mainframe and don\u2019t mind admitting I am a mainframe fanboy.\u00a0 JCL is a bit cryptic but if you know JCL, you know the mainframe.<\/li>\n<\/ul>\n<h2 class=\"p1\"><b>On Deck<\/b><\/h2>\n<ul>\n<li><strong>Rust:<\/strong> I\u2019ve started learning Rust.\u00a0 It\u2019s\u2026okay\u2026ish.\u00a0 It\u2019s a compiled systems language that doesn\u2019t have memory management and doesn\u2019t have garbage collection, so those are huge plusses.\u00a0 I find the syntax rather ugly.\u00a0 I didn\u2019t care for\u00a0<strong>the<\/strong> Rust book, but like Jim Blandy\u2019s book\u00a0<em>Programming Rust.\u00a0 <\/em>The major thing I don\u2019t like about Rust\u00a0is the crate ecosystem, which is like npm.\u00a0 I understand they\u2019re working on having more strongly-vetted crates, which make it more \u201cbatteries included\u201d without the supply chain risk, which I think would be great.<\/li>\n<li><strong>ALGOL 68: <\/strong>When I read that the most recent iteration of GCC supported ALGOL 68, I thought \u201cwait\u2026what?!?\u201d\u00a0 I think it\u2019d be fun to learn this language just for its history.<\/li>\n<\/ul>\n<h2 class=\"p1\"><b>Languages I Dislike<\/b><\/h2>\n<ul>\n<li><strong>C++:<\/strong> The biggest language not in the list above.\u00a0 I hate C++ and refuse to learn it.\u00a0 There are so many criticisms of C++ (for example) that I don\u2019t think I need to explain.\u00a0 Stroustrup once said there was a \u201csmaller, elegant language in C++ struggling to get out\u201d.\u00a0 Great\u2026LET IT OUT and throw C++ away.\u00a0 I am hopeful Rust will make C++ completely obsolete, but I\u2019m sure it\u2019ll soldier on like the COBOL of the 90s.<\/li>\n<li><strong>csh:\u00a0<\/strong>It\u2019s buggy and there\u2019s no need for the C-shell.\u00a0 Back before Bash existed, sure, csh\/tcsh had some nice features not in ksh.\u00a0 But for at least 20 years, Bash has had everything in sh\/ksh\/csh\/tcsh and there\u2019s no need for csh.\u00a0 I had to maintain csh scripts for many years and hate this language.<\/li>\n<li><strong>m4:\u00a0<\/strong>Scars from when I had to maintain sendmail.\u00a0 There\u2019s nothing m4 can do that Perl can\u2019t.<\/li>\n<li><strong>RPG:\u00a0<\/strong>This hoary old reporting language was in use at a company I worked for and I learned a bit of it\u2026just enough to dislike it.<\/li>\n<li><strong>Ruby:\u00a0<\/strong>I\u2019ve never understood the justification for this language.\u00a0 We have Python, Perl, PHP\u2026why do we need another scripting language?\u00a0 Ruby had its moment with Ruby on Rails and every now and then I run into some project using it (e.g., Homebrew for Mac) but it seems unnecessary to me.\u00a0 I hear it\u2019s big in Japan.<\/li>\n<\/ul>\n<h2>So What\u2019s Missing?<\/h2>\n<p>There are some big languages I\u2019ve never played with:<\/p>\n<ul>\n<li><strong>Forth:<\/strong> This is one language I should learn.\u00a0 You start with very small primitives and build up the language you want, which sounds interesting to me (and certainly easier than writing one\u2019s own compiler).\u00a0 Lifespan permitting, I will one day read a Forth book.<\/li>\n<li><strong>Prolog:\u00a0<\/strong>Another one that interests me, just because it\u2019s so different than other languages.\u00a0 Prolog is built around logical statements \u2013 it\u2019s really just a logic expression language, like Mr. Spock\u2019s ultimate fantasy.<\/li>\n<li><strong>Ada:<\/strong> The official language of the Department of Defense.<\/li>\n<li><strong>Erlang:\u00a0<\/strong>This language looks very interesting but I\u2019ve never had the need\/time.<\/li>\n<li><strong>Swift:\u00a0<\/strong>I don\u2019t write iOS apps.\u00a0 I could write macOS apps.\u00a0 I wish it was more of a general purpose language that was well-supported on Linux, which would make it more attractive to me.<\/li>\n<li><strong>R:<\/strong> I think I may have written some R at one point, but I don\u2019t recall.\u00a0 I don\u2019t do high-end data analysis.<\/li>\n<li><strong>Smalltalk:\u00a0<\/strong>Though to be honest, I think all of its ideas are in other languages I know.<\/li>\n<li><strong>Haskell:\u00a0<\/strong>I\u2019ve heard of it.<\/li>\n<li><strong>APL:<\/strong> I mean, when this is valid code:\n<div class=\"mw-highlight mw-highlight-lang-apl mw-content-ltr\" dir=\"ltr\">\n<p><span class=\"nv\">life<\/span> <span class=\"kd\">\u2190<\/span> <span class=\"kt\">{<\/span><span class=\"o\">\u2283<\/span><span class=\"m\">1<\/span> <span class=\"bp\">\u2375<\/span> <span class=\"o\">\u2228<\/span><span class=\"na\">.<\/span><span class=\"o\">\u2227<\/span> <span class=\"m\">3<\/span> <span class=\"m\">4<\/span> <span class=\"o\">=<\/span> <span class=\"o\">+<\/span><span class=\"na\">\/<\/span> <span class=\"o\">+<\/span><span class=\"na\">\u233f<\/span> <span class=\"m\">\u00af1<\/span> <span class=\"m\">0<\/span> <span class=\"m\">1<\/span> <span class=\"na\">\u2218.<\/span><span class=\"o\">\u2296<\/span> <span class=\"m\">\u00af1<\/span> <span class=\"m\">0<\/span> <span class=\"m\">1<\/span> <span class=\"o\">\u233d<\/span><span class=\"na\">\u00a8<\/span> <span class=\"o\">\u2282<\/span><span class=\"bp\">\u2375<\/span><span class=\"kt\">}<\/span><\/p>\n<p>\u2026then I guess I\u2019m intrigued.<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<p class=\"p1\">I\u2019m sure there are some languages I\u2019ve forgotten\u2026there are so many.<\/p>\n<p class=\"p1\">\n<p>The post Programming Languages I Have Known and Loved (and Hated) appeared first on LowEndBox.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Share Post Share reddit I ran into a polyglot the other day who asked me how many languages I knew.\u00a0 I flashed back to a moment circa 1977 when I was a young kid in a summer program to learn about computers.\u00a0 We were sitting at terminals and someone asked a hacker (in the good [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,461,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,307,510,511,512,513],"tags":[],"class_list":["post-49157","post","type-post","status-publish","format-standard","hentry","category-ada","category-algol","category-algol-68","category-apl","category-applescript","category-assembler","category-assembly","category-awk","category-bash","category-basic","category-batch","category-c","category-cobol","category-csh","category-dbase","category-editorial-news","category-elisp","category-emacs","category-erlang","category-forth","category-fortran","category-go","category-golang","category-haskell","category-java","category-javascript","category-jcl","category-ksh","category-lisp","category-lua","category-m4","category-pascal","category-perl","category-php","category-pl-i","category-pl-sql","category-prolog","category-python","category-r","category-redcode","category-regex","category-regular-expression","category-rpg","category-ruby","category-rust","category-scratch","category-smalltalk","category-sql","category-swift"],"_links":{"self":[{"href":"https:\/\/speedinet.co.za\/index.php?rest_route=\/wp\/v2\/posts\/49157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speedinet.co.za\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speedinet.co.za\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speedinet.co.za\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speedinet.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=49157"}],"version-history":[{"count":0,"href":"https:\/\/speedinet.co.za\/index.php?rest_route=\/wp\/v2\/posts\/49157\/revisions"}],"wp:attachment":[{"href":"https:\/\/speedinet.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=49157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speedinet.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=49157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speedinet.co.za\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=49157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}