<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Julia Community 🟣: ndx</title>
    <description>The latest articles on Julia Community 🟣 by ndx (@ndx).</description>
    <link>https://forem.julialang.org/ndx</link>
    <image>
      <url>https://forem.julialang.org/images/7a1KvI1h33hX1FZJz0bOKhPgbkW93ap387-2qIU9ooY/rs:fill:90:90/g:sm/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L3VzZXIvcHJvZmls/ZV9pbWFnZS82MjIv/OWZiNTUzNjMtNGZj/ZS00NzNmLWJiYTUt/MGYyYzNkNjEzODg1/LnBuZw</url>
      <title>Julia Community 🟣: ndx</title>
      <link>https://forem.julialang.org/ndx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.julialang.org/feed/ndx"/>
    <language>en</language>
    <item>
      <title>JuliaLang? Your complains have neat solutions.</title>
      <dc:creator>ndx</dc:creator>
      <pubDate>Thu, 25 Aug 2022 07:33:00 +0000</pubDate>
      <link>https://forem.julialang.org/ndx/julialang-your-complains-have-neat-solutions-1a5j</link>
      <guid>https://forem.julialang.org/ndx/julialang-your-complains-have-neat-solutions-1a5j</guid>
      <description>&lt;p&gt;Let me give some of the major reasons people complain about Julia and possible ways to solve them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Perceived Problem 1&lt;/strong&gt;: There are little to no questions on Julia' s stackoverflow tag, so if you have an issue, you'll have a hard time to solve it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: The new users don't know Julia is currently a community project (no big tech company is currently behind it unlike other languages), and that the community is very active on &lt;a href="https://discourse.julialang.org"&gt;https://discourse.julialang.org&lt;/a&gt;, &lt;a href="https://julialang.org/slack/"&gt;official julialang slack&lt;/a&gt; and is actively welcoming &lt;a href="https://github.com/JuliaLang/julia"&gt;discussions, issues and pull request on GitHub&lt;/a&gt;. If they knew this, they would know their questions would get responses (and answers) in at most 30mins on any of those official Julia channels. &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Perceived  Problem 2&lt;/strong&gt;: Python has more libraries than Julia. In Julia, there are little libraries in the ecosystem, and they're not actively managed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Put your expectations in check, programming languages and softwares don't work that way. Real world applications take time and they move in trends. Using python as an example, below are the most popular libraries you would mostly use if you use &lt;a href=""&gt;python&lt;/a&gt; a lot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href=""&gt;pypy&lt;/a&gt; a just-in-time compiler for &lt;a href=""&gt;python&lt;/a&gt; to help speed up the language published an initial release in 2007, &lt;strong&gt;16&lt;/strong&gt; after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;cython&lt;/a&gt; an extension of &lt;a href=""&gt;python&lt;/a&gt; for those who want to speed [python] up published an initial release in 2007, &lt;strong&gt;16&lt;/strong&gt; after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Pandas&lt;/a&gt; the most popular &lt;a href=""&gt;python&lt;/a&gt; library for dataframes published an initial release in 2008, &lt;strong&gt;17&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Numpy&lt;/a&gt; the most popular &lt;a href=""&gt;python&lt;/a&gt; library for numerical computing published an initial release in 2006, &lt;strong&gt;15&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Matplotlib&lt;/a&gt; the most popular &lt;a href=""&gt;python&lt;/a&gt; library for plotting published an initial release in 2003, &lt;strong&gt;12&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Tensorflow&lt;/a&gt; one of the most popular &lt;a href=""&gt;python&lt;/a&gt; library for ML and AI published an initial release in 2015, &lt;strong&gt;24&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Pytorch&lt;/a&gt; one of the most popular &lt;a href=""&gt;python&lt;/a&gt; library for ML and AI published an initial release in 2016, &lt;strong&gt;25&lt;/strong&gt; years after  &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Scikit-learn&lt;/a&gt; one of the most popular &lt;a href=""&gt;python&lt;/a&gt; library for &lt;a href=""&gt;ML&lt;/a&gt; published an initial release in 2007, &lt;strong&gt;16&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Selenium&lt;/a&gt; one of the most popular &lt;a href=""&gt;Python&lt;/a&gt; library for browser automation published an initial release in 2002, &lt;strong&gt;11&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Django&lt;/a&gt; one of the most popular &lt;a href=""&gt;python&lt;/a&gt; web framework published an initial release in 2005, &lt;strong&gt;14&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Flask&lt;/a&gt; of the most populat &lt;a href=""&gt;python&lt;/a&gt; web framework published an initial release in 2010, &lt;strong&gt;19&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; was created.
None of the libraries were developed 10 years after &lt;a href=""&gt;python&lt;/a&gt;. Any genuine person would ask this: Then what were people doing with Python for the first 10+ years… I guess they were using &lt;a href=""&gt;Perl&lt;/a&gt;, &lt;a href=""&gt;BASIC&lt;/a&gt; and bashing on &lt;a href=""&gt;Python&lt;/a&gt; as a lot of people are currently doing to &lt;a href=""&gt;Julia&lt;/a&gt;. So if you claim to love &lt;a href=""&gt;python&lt;/a&gt; and hate &lt;a href=""&gt;julia&lt;/a&gt; because of libraries availability, you're just a user who loves &lt;a href=""&gt;python&lt;/a&gt; because its easy to use with add-ons (libraries), not necessarily the language design itself; and moreover you would have said same thing about &lt;a href=""&gt;python&lt;/a&gt; had you come into it exactly 10 years after the language was developed (just like you say about &lt;a href=""&gt;Julia&lt;/a&gt; now). &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now contrast the above with how &lt;a href=""&gt;Julia&lt;/a&gt; is evolving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href=""&gt;DataFrames.jl&lt;/a&gt; one of the most popluar &lt;a href=""&gt;julia&lt;/a&gt; library for tabular data published an initial release in 2013, &lt;strong&gt;1&lt;/strong&gt; year after &lt;a href=""&gt;Julia&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Plots.jl&lt;/a&gt; one of the most popular &lt;a href=""&gt;julia&lt;/a&gt; library for plotting published an initial release in 2015, &lt;strong&gt;3&lt;/strong&gt; years after &lt;a href=""&gt;julia&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;UnicodePlots.jl&lt;/a&gt; one of the most popular &lt;a href=""&gt;julia&lt;/a&gt; Unicode-based scientific plotting for working in the terminal published an initial release in 2015, &lt;strong&gt;3&lt;/strong&gt; years after &lt;a href=""&gt;julia&lt;/a&gt; was created. &lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Makie.jl&lt;/a&gt; one of the most popular &lt;a href=""&gt;julia&lt;/a&gt; high level plotting on the GPU published an initial release in 2018, &lt;strong&gt;6&lt;/strong&gt; years after &lt;a href=""&gt;Julia&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Flux.jl&lt;/a&gt; one of the most popular &lt;a href=""&gt;julia&lt;/a&gt; ML library published an initial release in 2017, &lt;strong&gt;5&lt;/strong&gt; years after &lt;a href=""&gt;julia&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Knet.jl&lt;/a&gt; one of the most popular &lt;a href=""&gt;julia&lt;/a&gt; deep learning framework published an initial release in 2016, &lt;strong&gt;4&lt;/strong&gt; years after &lt;a href=""&gt;julia&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Franklin.jl&lt;/a&gt; one of the most popular &lt;a href=""&gt;julia&lt;/a&gt; static website generator published an initial release in 2019, &lt;strong&gt;7&lt;/strong&gt; years after &lt;a href=""&gt;julia&lt;/a&gt; was created.&lt;/li&gt;
&lt;li&gt;
&lt;a href=""&gt;Genie.jl&lt;/a&gt; one of the most popular &lt;a href=""&gt;julia&lt;/a&gt; web framework published an initial release in 2018, &lt;strong&gt;6&lt;/strong&gt; years after &lt;a href=""&gt;julia&lt;/a&gt; was created.
There are over &lt;strong&gt;8000&lt;/strong&gt; registered packages in the Julia ecosystem, so if you care to search well enough, &lt;em&gt;you might find what you need&lt;/em&gt;. 10 years into a language and they're already over &lt;strong&gt;8000&lt;/strong&gt; registered packages. This should tell you how fast the language is evolving.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The above comparisons are not given to say &lt;a href=""&gt;Julia&lt;/a&gt; is better than &lt;a href=""&gt;Python&lt;/a&gt;. The message it's trying to convey is that softwares and especialy open source softwares takes time. Since no one is getting paid for what they do, why do you think it will get out of the door just with a winkle? It takes time, so have that in mind. Anyways, if you want a library to be developed instantly for you, then talk to &lt;a href="http://juliacomputing.com"&gt;Julia Computing&lt;/a&gt; (but be ready to pay for it as its not free).&lt;/p&gt;

&lt;p&gt;All the growth of those python libraries came as a trend of the growth in &lt;a href=""&gt;ML&lt;/a&gt; and &lt;a href=""&gt;AI&lt;/a&gt;, and &lt;a href=""&gt;python&lt;/a&gt; was the only simple and versatile language dominant among users to glue them to at that time - so you see the trend now. The libraries weren’t developed because of &lt;a href=""&gt;Python&lt;/a&gt; (most of the development were done in &lt;a href=""&gt;C++&lt;/a&gt; and &lt;a href=""&gt;C&lt;/a&gt;, not in &lt;a href=""&gt;python&lt;/a&gt; as we all know), they were only glued to &lt;a href=""&gt;Python&lt;/a&gt; so users can easily call them. There are more libraries you know of in &lt;a href=""&gt;Python&lt;/a&gt; than the ones listed above, chances are they were initially released 20+ years after &lt;a href=""&gt;Python&lt;/a&gt; already existed. So yes &lt;a href=""&gt;Julia&lt;/a&gt; don’t have all the libraries you might need now, but its just 10 years old and chances are it has enough of the libraries to do most of the stuff you would need now (except in very niche cases where you either have to develop one yourself or wait for others interested in what you do to develop it as time goes on).&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Perceived  Problem 3&lt;/strong&gt;: There are a lot of tutorials out there to learn other languages, Julia's tutorials on the internet is very small.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: &lt;a href="http://docs.julialang.org"&gt;Julia's documentation&lt;/a&gt; isn't the best you'll find on earth, but it does a good job of explicitly telling you what and what you need to know and master to effectively use the language. If you have a problem the docs doesn't address, then instantly ask questions on any of the channels highlighted in the solution to problem 1 (you're guaranteed of an answer in 30mins) and also pull a request for it on &lt;a href="https://github.com/JuliaLang/julia"&gt;github&lt;/a&gt; and you're sure to get a review in a day (at most). Contrasting it with a language like &lt;a href=""&gt;python&lt;/a&gt; again, the tutorials boom on &lt;a href=""&gt;python&lt;/a&gt; only started gaining momentum &lt;strong&gt;20&lt;/strong&gt; years after &lt;a href=""&gt;python&lt;/a&gt; already existed, as a result of the growth of &lt;a href=""&gt;ML&lt;/a&gt; and &lt;a href=""&gt;AI&lt;/a&gt;; and it didn't happened overnight to get to where it is, it took time.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Perceived  Problem 4&lt;/strong&gt;: Julia is 1-based indexing and the other languages are all 0-based indexing, so its hard to get used to this new behaviour and it will slows my productivity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Julia is a isn't the only language using 1-based indexing. &lt;a href=""&gt;FORTRAN&lt;/a&gt;, &lt;a href=""&gt;APL&lt;/a&gt;, &lt;a href=""&gt;MATLAB&lt;/a&gt;, &lt;a href=""&gt;R&lt;/a&gt;, &lt;a href=""&gt;Wolfram&lt;/a&gt;, &lt;a href=""&gt;Lua&lt;/a&gt;, &lt;a href=""&gt;COBOL&lt;/a&gt;, etc., all use 1-based indexing and they have millions of developers using these languages and great softwares out there (so you see its not much of a big deal as most people would try to make it). Within a month of development in Julia, you will probably get used to it. If you're still keen on using 0-based indexing, then &lt;a href="https://github.com/JuliaArrays"&gt;JuliaArrays&lt;/a&gt; provides &lt;a href="https://github.com/JuliaArrays/OffsetArrays.jl"&gt;OffsetArrays.jl&lt;/a&gt; for you, so you can use 0-based indexing and even negative indexing as you wish to in Julia.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Perceived  Problem 5&lt;/strong&gt;: In other langauges I can quickly build standalone binaries, this is hard or not even possible in Julia.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Honestly, there is work going underground for this and its best left to say "NO Julia can't build standalone binaries for now". Of course, there are multiple workarounds like &lt;a href=""&gt;PackageCompiler.jl&lt;/a&gt; if you currently wish to build one still, but it's not yet effective like other languages have.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Perceived  Problem 6&lt;/strong&gt;: In python for example I can easily call &lt;a href=""&gt;C&lt;/a&gt; and &lt;a href=""&gt;C++&lt;/a&gt; libraries, this is hard or not even possible in Julia.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: You can do same and possibly even more in Julia. With Julia you can call most programming languages and use their code and libraries effectively.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For &lt;a href=""&gt;Python&lt;/a&gt;, you can use &lt;a href="https://github.com/JuliaPy/PyCall.jl"&gt;PyCall&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;a href=""&gt;C&lt;/a&gt;, you can use &lt;a href=""&gt;ccall&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;a href=""&gt;C++&lt;/a&gt;, you can use &lt;a href="https://github.com/JuliaInterop/Cxx.jl"&gt;Cxx&lt;/a&gt; and &lt;a href="https://github.com/JuliaInterop/CxxWrap.jl"&gt;CxxWrap&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;a href=""&gt;R&lt;/a&gt;, you can use &lt;a href="https://github.com/JuliaInterop/RCall.jl"&gt;RCall&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;a href=""&gt;Java&lt;/a&gt;, you can use &lt;a href="https://github.com/JuliaInterop/JavaCall.jl"&gt;JavaCall&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;For &lt;a href=""&gt;Mathematica/Wolfram&lt;/a&gt;, you can use &lt;a href="https://github.com/JuliaInterop/MathLink.jl"&gt;MathLink&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A lot more others showing you how to use other languages from Julia can be found here: &lt;a href="https://github.com/JuliaInterop"&gt;JuliaInterop&lt;/a&gt;&lt;/p&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To conclude, I will add this: If a language/environment is “good enough” for someone, no amount of persuasion will convince them to switch. In my experience, people who gravitate to &lt;a href=""&gt;Julia&lt;/a&gt; do so because it really solves the problems they had with other languages (in terms of speed, elegance, abstraction, "two-language problem"), or expect that it will, given time, so it is worth investing in.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Do you have a datatype, but keep googling the functions to work with it? Try This!!!</title>
      <dc:creator>ndx</dc:creator>
      <pubDate>Thu, 28 Jul 2022 00:37:37 +0000</pubDate>
      <link>https://forem.julialang.org/ndx/do-you-have-a-datatype-but-keep-googling-the-functions-to-work-with-it-try-this-1oej</link>
      <guid>https://forem.julialang.org/ndx/do-you-have-a-datatype-but-keep-googling-the-functions-to-work-with-it-try-this-1oej</guid>
      <description>&lt;p&gt;Someone posted this in the Julia reddit page &lt;a href="https://redd.it/w6e6aw"&gt;Pains of Julia compared to Python&lt;/a&gt;. In that article, he listed out 7 things he loved in Python but couldn't find in Julia. I found interest in number 7, because my first few weeks in Julia gave me same pain (which would later be the reason I loved the language more). It states, reading from the article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;7. Lack of OOP. Julia is strictly a functional programming language - there are no objects. So, if you want to perform operation on a datatype, you have to remember! (or google) the name of the function. For example, if you have a graph datatype named my_graph, in a language with OOP (such as python), you can type my_graph. and your IDE can suggest functions available for the my_graph object, such as my_graph.topo_sort(). In Julia, you will have to remember (or google) topo_sort function is available to process graph datatype and will have to type topo_sort(my_graph). This is the part I am having the hardest time getting adjusted to and has been a major cause of slow down.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I won't explain if Julia is OOP or not, but focus on the other part that has to do with remembering functions to work with in the datatype. Now, I'm sure a lot of user had same pain and I'd love to know how you conquered it. Meanwhile, let me share my own experience of how I solved the puzzle in a way that got me used to the langauge, where I don't need much googling, but rather explanations on specific implementations of some methods I might not understand, which the Julia community on slack and &lt;a href="https://discourse.julialang.org"&gt;discourse&lt;/a&gt; are happy to help with.&lt;/p&gt;

&lt;p&gt;Honestly, if you haven't been told yet, then hear it clearly now: &lt;strong&gt;Julia would be a bone in your throat if you hate using the REPL it provided&lt;/strong&gt;. A bone in your throat, because you would know what to do a lot of the time, but don't know how to do it in Julia.&lt;/p&gt;

&lt;p&gt;You can solve this using the &lt;a href="https://www.reddit.com/r/Julia/comments/w5c7if/comment/ihwnchl/?utm_source=share&amp;amp;utm_medium=web2x&amp;amp;context=3"&gt;steps&lt;/a&gt; I stated in the reddit answer I gave to the thread.&lt;/p&gt;

&lt;p&gt;Well now lets see its implementation here on Julia forum.&lt;/p&gt;

&lt;p&gt;The mandatory step is to download &lt;a href="https://www.anaconda.com/products/distribution"&gt;Anaconda&lt;/a&gt;, &lt;a href="https://code.visualstudio.com/download"&gt;VS Code&lt;/a&gt; and set it up for &lt;a href="https://code.visualstudio.com/docs/datascience/jupyter-notebooks"&gt;Jupyter Notebook&lt;/a&gt; and &lt;a href="download%20%5BJulia%5D(https://julialang.org/downloads/)%20if%20you%20haven't%20yet"&gt;Julia&lt;/a&gt;. Just google the &lt;a href="https://code.visualstudio.com/docs/languages/julia"&gt;workarounds&lt;/a&gt; for setting this steps up and ask questions politely (in any one of Julia forums) if you're stuck, then in 1 hour you should be done.&lt;/p&gt;

&lt;p&gt;Hopefully you're done with the steps above and now it's time to work into the magic that helped me get familiar with Julia and understand most of its methods.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open Up Your VS Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/Wj5donJyXYwCeFMQkoVBixEGoYGEgvzAiG7IRobdrh4/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3Z2/YjZwMDZhNmp1eXFz/eWJreWp2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/Wj5donJyXYwCeFMQkoVBixEGoYGEgvzAiG7IRobdrh4/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3Z2/YjZwMDZhNmp1eXFz/eWJreWp2LnBuZw" alt="Image description" width="880" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From the image's description, press &lt;code&gt;^&lt;/code&gt; and &lt;code&gt;\&lt;/code&gt; to toggle the terminal or use &lt;code&gt;⌘&lt;/code&gt; + &lt;code&gt;J&lt;/code&gt; keys to toggle panel. The screen should now look this way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/3-ovhFhIduRGpGGkbReaUMOkVwYrEt8GZgDqaob5fcw/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3li/ZGx0YnpmOG81aWV4/NXM5b3lyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/3-ovhFhIduRGpGGkbReaUMOkVwYrEt8GZgDqaob5fcw/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3li/ZGx0YnpmOG81aWV4/NXM5b3lyLnBuZw" alt="Image description" width="880" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Right click on &lt;code&gt;Terminal&lt;/code&gt; and then from the dialog-box opened, click on &lt;code&gt;Move Panel Right&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/mCdloGFQNwIX3l1v9yxN_gvitOFoRbzcEfWiO8-3_A8/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3h6/Yjg3enJqdmxpeHg5/MmwzeHZpLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/mCdloGFQNwIX3l1v9yxN_gvitOFoRbzcEfWiO8-3_A8/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3h6/Yjg3enJqdmxpeHg5/MmwzeHZpLnBuZw" alt="Image description" width="880" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have done so, then you screen should now look this way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/Kgx2wRbzAFVZRGQ38N8NFCnTdYypfu_OCgWjm_Ik98Y/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzk5/cXp5cXh2OWtzcmRh/dTU2NXE1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/Kgx2wRbzAFVZRGQ38N8NFCnTdYypfu_OCgWjm_Ik98Y/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzk5/cXp5cXh2OWtzcmRh/dTU2NXE1LnBuZw" alt="Image description" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now copy the execution path of Julia on your local computer and paste it into the terminal on VS Code. An easy way to get the execution path is to run the Julia REPL and then copy the execution path from the command line. The execution path as seen in the picture below is the text circled on yellow borders.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/Ft3pldQ1-yE9-XE4_GVXG6j-ouF2UPzidj_LTEqU-xo/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3c4/aThrMm14ejZteW1z/a2xuc2hnLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/Ft3pldQ1-yE9-XE4_GVXG6j-ouF2UPzidj_LTEqU-xo/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3c4/aThrMm14ejZteW1z/a2xuc2hnLnBuZw" alt="Image description" width="880" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've done so then your VS Code terminal should look like the image below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/88ZCq4NxodR0JvtR0JmFVnvQ_a2TzoJtlig3cooJNpE/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzl4/bzl3bzZramJ2MnN0/MGkydnJwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/88ZCq4NxodR0JvtR0JmFVnvQ_a2TzoJtlig3cooJNpE/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzl4/bzl3bzZramJ2MnN0/MGkydnJwLnBuZw" alt="Image description" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We all know how to set up the terminal for VS Code now and have it run our Julia REPL, making us have it all in one environment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open a new Julia file from the code editor in VS Code (use &lt;code&gt;⌘&lt;/code&gt; + &lt;code&gt;N&lt;/code&gt; keys) and click on &lt;code&gt;open a different editor&lt;/code&gt; as shown in the image below.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/dweTFu5tihVXCrSy6XoW777YDWatBpMOqQN7n0cb_Kw/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3Fj/cGRpcXJkZmViYjJu/d3pzbmJyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/dweTFu5tihVXCrSy6XoW777YDWatBpMOqQN7n0cb_Kw/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3Fj/cGRpcXJkZmViYjJu/d3pzbmJyLnBuZw" alt="Image description" width="880" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the &lt;code&gt;Jupyter Notebook&lt;/code&gt; from the drop-down menu as shown in the image below.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/3f0yfVWTFIqSvynWRm1kTuEyCEhSl-57hrQJaqR6i9U/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzkw/ejZsbDB6ZWp3Zmxv/MnhmMmtyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/3f0yfVWTFIqSvynWRm1kTuEyCEhSl-57hrQJaqR6i9U/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzkw/ejZsbDB6ZWp3Zmxv/MnhmMmtyLnBuZw" alt="Image description" width="880" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your VS Code editor should now look like this.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/UKl5u3x-7YMzgA0GY-fjhXvHSvskU91BN-VahRtkTwg/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL2dv/ZWd2ZzM2ZXdoejk3/a3Y0bGNkLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/UKl5u3x-7YMzgA0GY-fjhXvHSvskU91BN-VahRtkTwg/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL2dv/ZWd2ZzM2ZXdoejk3/a3Y0bGNkLnBuZw" alt="Image description" width="880" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now go into the cells of the notebook and type in this function as shown below.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight julia"&gt;&lt;code&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="nf"&gt; methods_inside&lt;/span&gt;&lt;span class="x"&gt;(&lt;/span&gt;&lt;span class="n"&gt;modules&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="x"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;modules&lt;/span&gt;
        &lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="x"&gt;(&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="x"&gt;(&lt;/span&gt;&lt;span class="n"&gt;uppercase&lt;/span&gt;&lt;span class="x"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="x"&gt;)))&lt;/span&gt;
        &lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="x"&gt;(&lt;/span&gt;&lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="x"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="x"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="x"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, at this point you should know the &lt;code&gt;Core&lt;/code&gt;, &lt;code&gt;Base&lt;/code&gt; and &lt;code&gt;InteractiveUtils&lt;/code&gt; modules are considered the standard libraries of the Julia programming language; meaning you can't do any meaningful work in Julia without them. So all methods exported by the standard libraries are the methods provided by &lt;a href="https://julialang.org"&gt;Julia&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;names&lt;/code&gt; method used in the function defined above is used to get an array of the names exported by a Module, excluding deprecated names.&lt;/p&gt;

&lt;p&gt;So we will pass those 3 modules of the standard libraries as arguments to our function we created. Type the code below into the next cell of your notebook.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight julia"&gt;&lt;code&gt;&lt;span class="n"&gt;methods_inside&lt;/span&gt;&lt;span class="x"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Core&lt;/span&gt;&lt;span class="x"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Base&lt;/span&gt;&lt;span class="x"&gt;,&lt;/span&gt; &lt;span class="n"&gt;InteractiveUtils&lt;/span&gt;&lt;span class="x"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If you have done the above, your editor should now look like this.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/eYG0UXRyVYOg5-yi_60xkHkEW12075owZfD1uWGkGmw/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzlr/ZWNydXhvZnF3OTF5/ZGZkOG9uLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/eYG0UXRyVYOg5-yi_60xkHkEW12075owZfD1uWGkGmw/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzlr/ZWNydXhvZnF3OTF5/ZGZkOG9uLnBuZw" alt="Image description" width="880" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;code&gt;in a text editor&lt;/code&gt; to get the whole text, because text files are truncated to fit into the screen by the default settings in VS Code (you can change this if you want). Your VS Code editor should now like this.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/pEcoN1XS5T6upnWzvJzlOREcuEhZNUr85YyAFeo4r5Y/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL2Q3/dHF4djZnOXo4dDU2/aWs0eTVhLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/pEcoN1XS5T6upnWzvJzlOREcuEhZNUr85YyAFeo4r5Y/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL2Q3/dHF4djZnOXo4dDU2/aWs0eTVhLnBuZw" alt="Image description" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You now have all the methods in the standard libraries in a text editor. You can scroll down and then see the methods listed in &lt;code&gt;Base&lt;/code&gt; module and &lt;code&gt;InteractiveUtils&lt;/code&gt; as well. Your laser-like focus should be on the &lt;code&gt;Base&lt;/code&gt; first and then work your way back to the &lt;code&gt;Core&lt;/code&gt; and then the &lt;code&gt;InteractiveUtils&lt;/code&gt; section of the methods (its not a rule, that's how I did mine and it worked for me, so change it to fit your needs).&lt;/p&gt;

&lt;p&gt;The question next is: what do we do with this? Well the answer is what I did with it (as that is where my knowledge is limited to), as I can't tell you how you would use it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save the text file that has all the methods with a &lt;code&gt;.txt&lt;/code&gt; file extension (so it can be opened up in VS Code), then &lt;strong&gt;ALWAYS&lt;/strong&gt; keep it open in your VS Code environment when working with &lt;a href="https://julialang.org"&gt;Julia&lt;/a&gt; as well as the Julia REPL on the terminal in the right hand side, this would make your workflow so swift.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/tEDgcIL1x2HtpbsUCjFgv3oIwpgnd-ygu1d2rsLX9BM/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzYy/M3Q1aWQ1d21qamFl/MGplcHJ5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/tEDgcIL1x2HtpbsUCjFgv3oIwpgnd-ygu1d2rsLX9BM/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzLzYy/M3Q1aWQ1d21qamFl/MGplcHJ5LnBuZw" alt="Image description" width="880" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I saved mine with &lt;code&gt;All Methods.txt&lt;/code&gt;. So each time I open up VS Code for working with &lt;a href="https://julialang.org"&gt;Julia&lt;/a&gt;, I could easily lookup methods and then use the &lt;code&gt;help?&amp;gt;&lt;/code&gt; entered by typing &lt;code&gt;?&lt;/code&gt; on the Julia REPL to quickly find out their meanings all in one environment.&lt;/p&gt;

&lt;p&gt;I know this might sound stupid, but I usually do a very quick glance through the &lt;code&gt;All Methods.txt&lt;/code&gt; file before writing my own methods for things, a lot of the time Julia has defined what I want executed. An example is checking if all the elements in an interable is distinct from each other. One would think a simple &lt;code&gt;for...end&lt;/code&gt; loop is an easy way to solve this. Of course, it is, but glancing through the file, I see the &lt;code&gt;allunique&lt;/code&gt; method, which sounds like what I want. Then I look up its documentation on the help session in the REPL and immediately I know its what I want. Would google had helped me? Probably yes/no, but whatever the answer may be, using this approach keeps making me familiar to the standard library of the language.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/zCnXr5jQk38QKSvG3x1LmpNSeTGuNTniOn_U-amXrqE/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3Zw/OGN0cmJnbTQ0Mjc0/dHhscTEyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/zCnXr5jQk38QKSvG3x1LmpNSeTGuNTniOn_U-amXrqE/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL3Zw/OGN0cmJnbTQ0Mjc0/dHhscTEyLnBuZw" alt="Image description" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another method is checking the perfect square less than or equal to a number. One would easily jump into coding, but trust me, as simple as this function sounds, Julia has provided it for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://forem.julialang.org/images/3SAC16EpPOYERRWL12XMznMFqIe_td3trER3JRqOGhY/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL2hm/enV6bzM4NzEwY2lw/c2w4azlmLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://forem.julialang.org/images/3SAC16EpPOYERRWL12XMznMFqIe_td3trER3JRqOGhY/w:880/mb:500000/ar:1/aHR0cHM6Ly9mb3Jl/bS5qdWxpYWxhbmcu/b3JnL3JlbW90ZWlt/YWdlcy91cGxvYWRz/L2FydGljbGVzL2hm/enV6bzM4NzEwY2lw/c2w4azlmLnBuZw" alt="Image description" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using the built-in functions, means your code would be more &lt;strong&gt;Julian&lt;/strong&gt;, making its intents readable among the Julia community and run faster as well. So please use it.&lt;/p&gt;

&lt;p&gt;On my study and free-time as well, I also explore new methods. Julia is so new, so a lot of questions which can help reveal new methods or ways of doing things have not been asked yet on stackoverflow or whatever, so googling won't help now. Your best bet is to learn them yourself and write more syntactic &lt;strong&gt;Julian code&lt;/strong&gt; thereby making your code more scientific and program run more faster.&lt;/p&gt;

&lt;p&gt;How did you solve yours, I'd love to know?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Where do we go next from here with programming languages?</title>
      <dc:creator>ndx</dc:creator>
      <pubDate>Tue, 12 Jul 2022 16:43:02 +0000</pubDate>
      <link>https://forem.julialang.org/ndx/where-do-we-go-next-from-here-with-programming-languages-3ec2</link>
      <guid>https://forem.julialang.org/ndx/where-do-we-go-next-from-here-with-programming-languages-3ec2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Once upon a time - exactly 74 years ago - a man born in Berlin, Prussia, at the time of the German Empire, published the first concept of what we call today as a "high-level programming language". But wait, a lot happened before then.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;History has it that after he graduated, he went to work for one of the big motor companies of his time, using his artistic skills in the design of advertisements. He also worked as a design engineer at one aircraft factory in a place near Berlin. This required the performance of many routine calculations by hand, leading him to theorise and plan a way of doing them by machine.&lt;/p&gt;

&lt;p&gt;This man, who later in the twilight of his days on earth would die from a heart attack, was a self-taught, and built and developed a lot of his works without knowledge about other mechanical computing machines that existed already. Although he would later go on to build on existing discoveries and technologies, between 1936 and 1945 he was in near-total isolation; he completed his work entirely independently of other leading computer scientists and mathematicians of his day.&lt;/p&gt;

&lt;p&gt;It was in 1945, after the Luisenstadt bombing, that he fled from Berlin to the rural Allgäu. In the extreme deprivation of post-war Germany, he was unable to build computers. Unable to continue building computers - which was also forbidden by the Allied Powers - he devoted his time to the development of a higher-level programming model and language.&lt;/p&gt;

&lt;p&gt;In 1948 he published a paper and presented it at one of the annual meetings of his time. His work failed to attract much attention. In a 1957 lecture, he expressed his hope that the higher level programming language he had created, "after some time as a Sleeping Beauty, will yet come to life." He expressed disappointment that the designers of another programming language, who used most of his works never acknowledged the influence of high level programming language on their own work.&lt;/p&gt;

&lt;p&gt;The man we've been taking about is Konrad Zuse, and Plankalkül was the name of the higher level programming language he built, which was essentially made for engineers. ALGOL 58 was the programming language designed with most of his work, but the developers never acknowledged the influence of Plankalkül on it.&lt;/p&gt;

&lt;p&gt;Plankalkül was more comprehensively published[vague] in 1972. The first compiler was implemented by Joachim Hohmann in his 1975 dissertation. Other independent implementations followed in 1998 and 2000 at the Free University of Berlin, history continues of course, but we will end there for now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To know where we are going we somehow need to know where we are coming from - and that story was introduced just as a way to take us back a little to see where this "higher level programming language" thing started and where it's likely to go.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are currently more than 700 programming languages out there as at this time of writing. Some are low level, most are high level. Some designed for speed, others designed for simplicity. Some designed for security, others designed for low-level interactions, and the list goes on and on and on.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go out now and ask someone with no computer programming language: how many programming languages do we have? Let them   make an educated guess with the knowledge of how they see the computer world, chances are they would all answer in the range of 0 - 10. The ones who answer in the range of 20 - 50 would be waiting to get a response back from you that he/she was wrong. Chances are as well, that if you should make an educated guess now, you might get it completely wrong as well. The vague answer is that there are over 700 programming languages. WOW!!!!&lt;/p&gt;

&lt;p&gt;I failed it as well, it was only by "googling" that I came to know of this unimaginable number. Now, the question is: why 700? why not 1? why not 5? why not 10? why not even 20? how come its over 700?😱. That's an open question, so discuss it with your friends.&lt;/p&gt;

&lt;p&gt;My view is this: there are over 700 but are all 700 being massively used. Of course, that's a simple NO. If all 700 are not being used, why do they exist? They exist because there's an informal law in computer programming: "programming languages are only created, they cannot be destroyed."&lt;/p&gt;

&lt;p&gt;But why can't they be destroyed? Because the trend is: learn programming and then fall in love with a language. Then technology advances and you know we can no longer use your "loving language" efficiently anymore as the current world demands something with a different philosophy, which your loving language can do if tweaked, but wasn't designed for, but you choose to continue using it and only use a different language when your job requires it. So you see, we can only create but not destroy, because every creation gathers a fan base which won't let it die, no matter its age - Plankalkül is a case in point, as its still being used.&lt;/p&gt;

&lt;p&gt;But that doesn't answer the question of this article - where do we go next from here with programming languages? Honestly, speaking technology is one sweet field where advances are great (and they would always come), only if it won't hurt or demand you to learn something kinda entirely new or change your current perspectives and beliefs. The golden question now is this: if the man/woman who created your programming language "loved" the language they learnt programming with so much that it blinded them to see a change or think in a new paradigm, do you think we would have seen another high-level programming language other than Plankalkül ?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Would there have been Python, if Van Rossum so loved BASIC, or would there have been C++ if Bjarne so loved C, or would there have been Julia if Viral could only see Lisp, and the list goes on and on and on. The point is technology itself is built on ADVANCEMENT, so no matter how much you love a language, know its only going to be for a while or if you're lucky enough, your whole lifetime; but no matter how hard you try, your kids won't use what you use, or even if they used what you use, they won't use it in the same way that you used it - that's how technology works, so embrace it.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But still the question is not answered yet - where do we go next from here with programming languages? Where we go next from here depends on two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A body would be set up to regulate the creation of programming languages.&lt;/li&gt;
&lt;li&gt;New languages won't be created except they're coming with a completely different philosophy.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now think for a moment if advancement and discoveries was regulated? Would there be any "outside-the-box" discoveries accepted. Of course the answer is NO. History shows how regulation only helps in maintaining moral conducts and order but kills imagination and discoveries into new areas; this is the reason our school system still thinks "grading students" has been the norm and so is good, even when mathematically and statistically speaking, grades are no projection into the future of any child, as countless evidences has shown, and rather than helping students, it kills their morale and makes some feel like losers. The truth is if there was a regulation (which there won't be) in the technology space to control new discoveries, the world would have been a boring place, as we would have only seen ways on how to improve the post office system instead of envisioning an "email" along with it.&lt;/p&gt;

&lt;p&gt;C++ was designed with "classes" in mind. So its built on the already existing ideas of "C" but with "classes" included. So can we say "classes" is a whole different philosophy to enforce the creation of a new language. If its not, why don't we just extend the language "C", so it accepts the "class" idea and then we don't need a new language, but simply have one with two design philosophy? The answer to this question is a question: a car can drive in a blazing speed and take us where we want to in a small time and with comfort compared to if had to walk by foot. The aeroplane can fly us to where we want to in a small time and with comfort compared to if we had to walk or drive a car. But if a car "can take us in a small time and with comfort" to where we want compared to if we walk by foot, why do we need an aeroplane then? Why not just add to the design of a car so it can fly, and then we only need one device, just a car? Until you can answer this question with the car and aeroplane analogy, you can't answer the question with C and C++.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;The truth is "design and philosophy" is very different from "features and abilities". "Features and abilities" build on pre-existing "design and philosophy", but then "design and philosophy" are completely built on new "ideas and thought process." There is no difference between a Tesla car and a Ferrari, except the features and abilities. So we only needed a Ferrari when we needed new features, for this we do not need a new device, we simply have to build on the "pre-existing design and philosophy" of a car. But when it comes to an aeroplane, it brings a new idea - the idea of objects being able to fly in the air. That's a whole new "though process". So you see, its best if we come down and think of how to make "objects" fly instead of how to make a "car" fly. Then we finally did it, the name doesn't matter - we could have called an aeroplane a "flying car", what matters is the different idea an aeroplane has. This is how it is too with programming languages.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Yes, there are languages with "features and abilities" which in the true sense the developers should have thought of contributing to the orginal languages they borrowed the idea from, instead of creating a new one - but we humans know how we all want something called "our" own, instead of I built "their" own: this is the reason there are many programming languages in the world today, not the design and philosophy thing. Its good to know C++ was designed for classes and C for procedural. So when a use case comes for each design, I know where to go to.&lt;/p&gt;

&lt;p&gt;The question then is if we have very limited programming paradigms and concepts, how come we have over 700 languages as if we're on planet talking to humans, when in its true sense we're only talking to a computer? The reason is the "features and abilities" that leads to new programming languages instead of developing already existing ones when its just "features and designs". Of course we all caused it, when we started attributing programming languages to "owners", "creators", etc. If there was no "creator" or "owner" to a programming language, then the idea of contribution would have been easy for us humans. Look at the earth, imagine if only Mr. A owned planet earth, we would all have seen this has a place to just dump and go, but because we see it as for "humanity" as a whole, we all contribute to its good. So this is one area in the future where open source can go to, an area where there are only "contributors" and no "creators", "owners" or "founders" exists.&lt;/p&gt;

&lt;p&gt;Still the question yet is not answered: where do we go next from here with programming languages. I think now I can answer in my view. The programming languages numbers would keep surging at a rate probably 100 against new programming paradigms or concepts, as the creation of any programming paradigm leads to at least 100 programming languages with same "design and philosophy" but different "features and abilities", i.e, programming languages : programming paradigms is at a ratio of 100:1.&lt;br&gt;
Secondly programming paradigms and new concepts would be getting diminished as a lot of emphasis would be on languages  instead of new paradigms that would help the technical computing community. This is of course is my view and it can be wrong.&lt;/p&gt;

&lt;p&gt;Finally I want to speak on Julia vs Python? Comparing this two languages is like comparing an aeroplane to a car. They both have one purpose: take us to where we want to in quick time and comfort than if we would work. But with different "design and philosophy", one moves on the land and is quick compared to a human foot, the other moves on the air, and is quickest compared to the car and a human foot.&lt;/p&gt;

&lt;p&gt;So you sit there and ask? Should I switch to Julia from Python, or go learn C++, or even ruby. C++ is a programming language used to talk on a lower-level with the computer. It is still popular because of an idea I call &lt;code&gt;"diminishing-increasing dependency"&lt;/code&gt;. &lt;code&gt;Diminishing-Increasing dependency is a concept where we are going away from something, but haven't found other alternatives to fully replace it, so the more we go away from it looking for other alternatives, the more we rely on it.&lt;/code&gt; Check the last 100 programming languages designed, and you'd see what I'm talking about: the syntax is so different from C++, that you wouldn't even think any programming language should look like C++ do.&lt;/p&gt;

&lt;p&gt;But the truth is, yes the generation we're slowly moving into does not want a program to be "dirty" like C++ even when it does the work, we want something we can read to somebody else and still give the computer to execute it. But the truth is, the computer is still at a stage where it only understands 0's and 1's - so C++ is the language that interacts with it so closely at that level, hence the more better a language we look for, the more C++ we would be using. So C++ would keep getting popular as it has no competitor, because no languages are being develop that way to be "dirty" anymore, just so it can talk on a lower-level with a computer. So you see modern languages having more competitors than old languages like FORTRAN, COBOL, C and C++, because no one is building languages in that style anymore - and the more we look for the perfect language, the more we have to depend on the only ones we have for now that can talk to a computer in a very close way - "Diminishing-Increasing Dependency".&lt;/p&gt;

&lt;p&gt;Of course, 100 years from now, C++ and its counterparts would all be gone in a way and would only be used as legacy languages, because we would have developed the computer to a stage where it can take human-readable code and still be fast and even faster than C++ and its counterpart would have been - Is 100 years too much an exaggeration? Well, just give it any number, but one thing is sure, its not happening in your time if you're old enough to read this as at the time of writing.&lt;/p&gt;

&lt;p&gt;Now back to Python and Julia. If you're an avid Python lover, do you belief deep down 20 years from now, we would all still be depending on Python to run numerical simulations? Well the future would tell anyway, but sure we know the answer in a way.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;The truth is we can't depend on Python for numerical simulations 10, 20, 30 years from now. The language wasn't designed for "speed" and "numerical computing". It was designed for "readability" and "general use". Every day, data is being flooded out into the space, and we want something a bit faster and one that makes lives easier as well. Python is a great language but it just got into a community that would come back to bite it. Numerical computing is not "general use", it needs to be "fast", and that's a first requirement. Then it needs to embrace the mathematical world and breathe it. Python itself does not have any one of these traits, it only works as an interface after the work is done inside by other core languages - making you worry over learning another language if you have an idea that's worth building from scratch and is very time intensive.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Now when you come to Julia, you could in a way exaggerate that the 100 years I said above is finally here. It gives you the speed and even more than the speed C++ would give you (this is still largely debatable) along with the readability. So in a sense, Julia is the 21-st century language, as it seeks to finally make C++ and its counterpart obsolete. So you see, Python is no comparable to Julia, Julia is competing with C++ and counteparts we all know that, but as for Python, it is just too small for it - the fact that the community hasn't fully accepted Julia yet doesn't makes Python anywhere near it; Julia is just waiting for full industry acceptance. Python is only there because of its uncountable libraries available (libraries mostly developed outside the language f its does a lot of intensive work) and community base it has over Julia, not the language itself&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Julia beats C++ speed on some instance and also breathes and lives the math world. You can use '√' to represent a square root and its valid code. 2x - 5y + 4x * 23y is valid Julia code. This is just a pinch of how it lives for the mathematical world - so your kids would grow up to see that just as we understand "2x - 5y", the computer understands it as well. Of course, python can add that if it chooses, but the point is, it wasn't designed for that - you want to be on an aeroplane flying and not a car that was tweaked so it can fly.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Yes, there are Python lovers and they won't change no matter what. There are C++ lovers and they won't change no matter what. But whether you choose to change or not, its clear - JULIA IS THE 100 YEARS WAY FROM NOW.&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
