# Has anyone seen this blog?

**URL:** <https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684>\
**Category:** Community\
**Tags:** question\
**Created:** [January 30, 2018, 4:34am UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684 "2018-01-30T04:34:22Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![mvhulten](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mvhulten/32/2444_2.png) [@mvhulten](https://discourse.julialang.org/u/mvhulten)\
**Post date:** [January 30, 2018, 5:20pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/21 "2018-01-30T17:20:49Z")

</div>

I don’t use the Google search engine, which may be the reason that I did not found the critique given by Victor Zverovich and that of Dan Luu. Searching for _“julia programming language”_ with Google on my computer shows their blog posts on the 3rd and the 5th ranking, respectively. With my daily search engine [duckduckgo.com](http://duckduckgo.com), I found them around the 35th and 100th position.

As for Zverovich’s post, I didn’t have the idea that he raised issues that are important to me. I have never used Matlab (maybe once I did something in Octave). I have used Fortran quite a lot. Julia’s syntax looks like that (at least loops, for instance), and I like it. So I can only disagree with the issue he has with the syntax.

Especially Luu has a couple of good points. Especially those that criticise behaviour of core developers is disturbing, but I always find it _very_ difficult to judge those things.

---

<div class="post-metadata">

**Author:** ![Liso](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@Liso](https://discourse.julialang.org/u/Liso)\
**Post date:** [January 30, 2018, 5:25pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/22 "2018-01-30T17:25:15Z")

</div>

I meant usability of `julia -e ...` in shell scripts. (so we cannot subtract exit time)

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [January 30, 2018, 5:46pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/23 "2018-01-30T17:46:28Z")

</div>

I don’t know nearly enough to be able to tell what the “good points” are. What is your opinion?

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [January 30, 2018, 5:56pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/24 "2018-01-30T17:56:23Z")

</div>

On second reading, Luu’s blog sounds a lot like a personal feud…

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [January 31, 2018, 8:06am UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/25 "2018-01-31T08:06:33Z")

</div>

> [@Yifan\_Liu](#):
>
> Most of those Matlab users I know have no idea about version control, never go to stack overflow or other forums to ask questions […] there will be a lot of Julia users like this in the future. All they want is to get things done.

I don’t quite understand what you are saying here. We _all_ want to get things done. But when you don’t know how to do things, you have to ask, read the manual, or put in some other effort, don’t you?

Julia is a free software project. Things are likely to get more convenient, but it is unlikely that package authors will invest a lot of time in making their work suitable for users who want to invest near-0 effort. Maintaining interfaces like that is very costly and not very rewarding; it usually happens when someone pays for it (Matlab, of course, is a case in point).

I think that people frequently misunderstand free software communities. They are driven by contributors, who don’t just want to replace and improve on commercial or free alternatives _per se_. Unless they are financed by some company (eg like some Linux kernel contributors), they want better software primarily for _themselves_. For Julia, this is reflected in the famous [“we are greedy”](https://julialang.org/blog/2012/02/why-we-created-julia) announcement.

---

<div class="post-metadata">

**Author:** ![bjarthur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bjarthur/32/9638_2.png) [@bjarthur](https://discourse.julialang.org/u/bjarthur)\
**Post date:** [January 31, 2018, 12:16pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/26 "2018-01-31T12:16:14Z")

</div>

> [@Yifan\_Liu](#):
>
> use R to replace SAS and use Julia to replace Matlab

why not ditch R too and replace SAS and matlab with just julia, using [Rcall.jl](https://github.com/JuliaInterop/RCall.jl) where needed?

---

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [January 31, 2018, 1:17pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/27 "2018-01-31T13:17:39Z")

</div>

i cant ditch as it’s good at certain things and still haa faster data manipulation in data.table. Heck I am still writing a packe in R

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [January 31, 2018, 3:57pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/28 "2018-01-31T15:57:29Z")

</div>

I totally understand your point. From a country with very limited online resources, I spent a lot of time reading online materials that can help me. However, most of my students just want to get things done in the easiest way and never have to do it again…  
I noticed that they prefer hard copy or published books instead of online resources, and they will never read it unless they pay for it.  
For graduate students, the situation is better, but still they do not want to spend time learning programming by their own. That is why some legacy codes are used by many years.

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [January 31, 2018, 4:03pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/29 "2018-01-31T16:03:26Z")

</div>

R has support from the whole stats academia, and R has very good academia style publications, see [Use R! | Book titles in this series](http://www.springer.com/series/6991?detailsPage=titles)

Students without any programming background will easily get R and Julia syntax confused if we use R within Julia.

In addition, the potential employers of our students use R and Python.

---

<div class="post-metadata">

**Author:** ![randyzwitch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/randyzwitch/32/15955_2.png) [@randyzwitch](https://discourse.julialang.org/u/randyzwitch)\
**Post date:** [January 31, 2018, 4:40pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/30 "2018-01-31T16:40:04Z")

</div>

> [@Yifan\_Liu](#):
>
> As long as Hadley Wickham is still alive, there is no reason to ditch R.

Unless, of course, you don’t agree with him causing externalities onto people who don’t like non-standard evaluation and piping.

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [January 31, 2018, 5:03pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/31 "2018-01-31T17:03:52Z")

</div>

I understand that some people do not like non-standard evaluation. 😆

From a PL perspective, piping reduces efficiency and sometimes is unsafe. However, from a education perspective, it really saves me a lot of trouble. When I first came to U.S. , I noticed that students are taught to do math like this:

1+2 = 3 + 5 = 8\*2 = 16

Basically, they think from left to right. If I teach them to program in the traditional inside-out way in my finance class, they feel it very difficult to look back to debug and there are too many brackets confusing them.

Since I am not a CS instructor, I do not have the luxury to expect students to write code in an elegant way. As long as they can get the correct answer, I am more than happy with that.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [January 31, 2018, 5:18pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/32 "2018-01-31T17:18:01Z")

</div>

> [@Yifan\_Liu](#):
>
> As long as Hadley Wickham is still alive, there is no reason to ditch R.

If what you do is statistics.

---

<div class="post-metadata">

**Author:** ![Steven\_Sagaert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/steven_sagaert/32/29578_2.png) [@Steven\_Sagaert](https://discourse.julialang.org/u/Steven_Sagaert)\
**Post date:** [February 1, 2018, 9:24am UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/33 "2018-02-01T09:24:37Z")

</div>

Agreed. After experimentation with Julia and writing a prototype recommendation engine in it a few years back (julia v0.3) I went back to R for my data analysis/statistics stuff and I’ll keep on using it for the coming years. Heck I might even use for number crunching deep learning & big data now since it now has wrappers to Spark and deep learning lib and has good parallelization mechanisms now both for single host & cluster/cloud.

---

<div class="post-metadata">

**Author:** ![mvhulten](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mvhulten/32/2444_2.png) [@mvhulten](https://discourse.julialang.org/u/mvhulten)\
**Post date:** [February 1, 2018, 9:26am UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/34 "2018-02-01T09:26:32Z")

</div>

After reading Luu’s post again, I decided that I cannot make an informed opinion about this (I also don’t know enough). Maybe much of his technical criticism is already solved or is not that important. As a Julia user who just started writing analyses of model output and simple simulation models, I can only say that my experience so far is very positive.

Yes, there appears to be a personal feud between Luu and a Julia developer. Though I don’t know, I assume that doesn’t impact his technical criticisms.

---

<div class="post-metadata">

**Author:** ![ljwolf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ljwolf/32/16223_2.png) [@ljwolf](https://discourse.julialang.org/u/ljwolf)\
**Post date:** [February 3, 2018, 1:03pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/35 "2018-02-03T13:03:36Z")

</div>

This kind of hagiography is really frustating in open source projects. At best, it convinces outsiders that a project’s [bus factor](https://en.wikipedia.org/wiki/Bus_factor) is poor. At worst, it divides communities depending on each person’s patron saint. Let’s hope that it becomes less common.

---

<div class="post-metadata">

**Author:** ![tk3369](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tk3369/32/2824_2.png) [@tk3369](https://discourse.julialang.org/u/tk3369)\
**Post date:** [February 3, 2018, 11:31pm UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/36 "2018-02-03T23:31:34Z")

</div>

Does anyone know what this means? I thought multiline comments are just enclosed by triple quotes but what exactly was the problem with the symbols?

> The expression syntax is more reasonable, but there is still some unorthodox choice of operators, punctuators and the syntax for multiline comments that creates WTF moments every now and then (who has come up with this stuff: #= \ // $ ?)

---

<div class="post-metadata">

**Author:** ![tk3369](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tk3369/32/2824_2.png) [@tk3369](https://discourse.julialang.org/u/tk3369)\
**Post date:** [February 4, 2018, 1:31am UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/37 "2018-02-04T01:31:15Z")

</div>

I think it would be more constructive to provide an update and insights in a new blog article. Feedbacks welcome. Feel free to post your comments directly as well.

> **[An Updated Analysis for the “Giving Up on Julia” Blog Post](https://tk3369.wordpress.com/2018/02/04/an-updated-analysis-for-the-giving-up-on-julia-blog-post/)**
>
> Official blog post: Background This blog post from May 2016 introduced a lot of skepticism about the Julia programming language. As one can see from comments on the blog page as well as recent disc…

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [February 4, 2018, 1:48am UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/38 "2018-02-04T01:48:38Z")

</div>

Great post! Really nice and clear. One thing I would change:

> The fib function was then optimized using a LRU cache. As it’s deviating from a benchmark perspective (unless we do the same for Julia) there’s no comparison.

I would make this more clear to outsiders why. Basically say that at that point it’s a different algorithm, so of course it’s faster. And we could do the exact same change in Julia and it would be faster too, but what we’re benchmarking is how fast the language runs and not how fast the language runs on these kinds of operations. I just think it goes a little quick and, to someone who doesn’t know what’s going on, may think you just dismissed potential Numba/Cython optimizations.

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [February 4, 2018, 2:42am UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/39 "2018-02-04T02:42:22Z")

</div>

A few comments:  
Triple doublequotes `"""` are simply another way of making a string literal, and is almost the same as using single doublequotes `"`, except that you don’t need to use a `\` to escape any `"` appearing within the string,  
and some processing is done to remove indentation.  
`#=` and `=#` are used to mark off multi-line comments, the same as `/*` and `*/` in C/C++.

There were already multiple alternatives to `@printf` available when he wrote his blog, such as Lin Dahua’s [Formatting](https://github.com/JuliaIO/Formatting.jl) package, or my own [StringUtils](https://github.com/ScottPJones/StringUtils.jl) package (which has been superceded by [StringLiterals](https://github.com/JuliaString/StringLiterals.jl)). You could mention that.

About unit testing, we also used `FactCheck` (you have a mispelling, `FastCheck`, twice in your blog), until most of it’s features were added to `Base.Test`, and development/maintenance on `FactCheck` seemed to stop, at which point we switched over to `Base.Test`.

What did you mean by saying there were 8,219 lines of Scheme, and 2,286 lines of Lisp?  
There’s only FemtoLisp, which is an implementation/dialect of Scheme (that Jeff Bezanson wrote)  
FemtoLisp is used for both the parsing (converting Julia text into an `Expr`), and for “lowering” (dealing with macros, etc).

Also, the C code and the C++ code are actually rather separate. FemtoLisp is written in C, as well as most of the low-level support for Julia (memory management, calling into C, etc).  
C++ is used for the code that works with LLVM (that’s the one part of Julia I really having dug into yet)

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [February 4, 2018, 3:01am UTC](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684/40 "2018-02-04T03:01:37Z")

</div>

I posted it to Hacker News. Please go search and upvote it to give awareness.

[Previous page](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684.md?page=1)

[Next page](https://discourse.julialang.org/t/has-anyone-seen-this-blog/8684.md?page=3)
