Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Jul 2020 20:46:02 -0400
From:      Aryeh Friedman <>
To:        Don Wilde <>
Cc:        Brandon helsley <>,  FreeBSD Mailing List <>
Subject:   Re: Petite Cloud, CBSD, Intellij
Message-ID:  <>
In-Reply-To: <>
References:  <> <> <> <> <> <>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
On Mon, Jul 13, 2020 at 8:05 PM Don Wilde <> wrote:

> On 7/13/20 3:39 PM, Aryeh Friedman wrote:
> On Mon, Jul 13, 2020 at 6:16 PM Don Wilde <> wrote:
>> On 7/13/20 2:49 PM, Aryeh Friedman wrote:
>> On Mon, Jul 13, 2020 at 12:46 PM Don Wilde <> wrote:
>>> On 7/13/20 5:59 AM, Brandon helsley wrote:
>> <flame bait> Personally, I like the LLVM-based CLANG and Crystal. Most of
>> the installation time comes from the various versions of LLVM being
>> requested by the HLL. IMHO, the LLVM is a much more flexible and accessible
>> virtual execution engine than Oracle's Java and JVM. </flame bait>
> C/C++ most certainly are not beginner friendly languages and the OP is
> someone who has never done programming before.
> --
> Aryeh M. Friedman, Lead Developer,
> Doesn't make him a bad guy, Aryeh. Given that Brandon is already doing his
> best to learn _and_ to contribute to the Project he doesn't deserve such
> crabby comments, although I expected such when I bracketed my opinion with
> <flame bait></flame bait>.

What I misreading I never said he (or you) were "bad guys".

> IMHO, while Java syntax is deceptively simple, your comments to date prove
> that _using_ the language in the real world is not trivial. I made the
> mistake a few months back of attempting to compile the entire JDK8 code
> base on a rock-stable Ubuntu 18 system and it was a nightmare. The
> successive approximations you have gone through to get a working IDE and
> JVM deployment environment for Java show that it is a challenge, even for
> an experienced coder as you obviously are.

Again *WRONG* I got Java to work as advertised right out the box with
nothing more than portmaster -d java/openjdk8 (that is all I have ever
needed to do on FreeBSD since the first time I ever used it on FreeBSD back
in 2004).   My "difficulty" with IDE's is not a "difficulty" only a general
very strong dislike of IDE's in *ANY* language (and I have had the same
issues with them in all languages for example Eclipse when dealing with
C/C++ drags around huge libraries that are not a part of the STL or StdLib
[or even Boost] and are a hell and half to compile outside of Eclipse).

And Java is one the most natural languages I have used there are no bizzare
exceptions such as there are in JavaShit (oops JavaScript), C/C++, etc.
If a keyword/construct works in place/platform A a given way then it is
guaranteed to work on place/platform B (even if on radically different
devices and/or OS's for example if I stay away from Android only libraries
then anything I write in FreeBSD will work there without modification or
recompiling and it will also work on Window$, MacOSX, etc.).

As to code complexity Java has *MUCH* simpler code then C/C++ or almost any
other non-scripting language (almost all of which are not as general
purpose as they claim) I want to just give a example that should prove my
point.   In 1993-1995 I helped write one the first streaming media (video)
servers in C/C++ took a team of 5 and 100+ KLoC.  I wrote a similar video
capturing program in Java in June because my SO was not able to find any
suitable screen capture-->streamable video software that would work on all
the platforms we needed to work on (she teaches computer science at the
local university which has decided to call 100% virtual next semester).
The Java version was less than 200 lines of code (ok I cheated a little and
left the stitching together of screen snapshots to graphics/ffmpeg) that
has a better frame rate (30 FPS vs. 10 FPS) and audio then we ever achieved
in the C/C++ version above (credit Moore's Law mostly here).   Note the
Java version used nothing but the standard Java library that comes with
OpenJDK8.   Another case is I just wrote some code for the EMR to interface
directly with a remote MySQL instance (first time we have used an external
DB) and was able to have it automatically generate the needed SQL
statements and such based on the structure of the data at run time in less
than 100 lines of code, last time I did that C/C++ it was over 1000 lines
of code and it was not able to handle dynamic structures at runtime while
the Java version can (again the Java version used nothing but the standard
Java library and a J/OBC driver [devel/mysql-connector-java]).

> AFA CLANG and Crystal, C++ is what colleges teach newbie coders in CS.
> Business apps coders headed for IT and (shudder) the IT web stack get Java.
> Admittedly, they don't go very deep (in either of those cases) but the user
> base is out there.  C++ is also what a lot of FreeBSD itself is written in
> these days, so knowing at least something about it is A Very Good Thing(tm).

Actually Java has been the language of instruction at most schools
(grad/undergrad CS [not IT]) for almost 20 years now:
... Says most schools use Java with a smaller number using C/C++ and then
even smaller numbers using misc. languages.   Almost every CS (not computer
engineering) paper I have read in the last 15 years uses Java as the
reference language when dealing with general CS topics (specific topics
like OS's of course are in other languages like C/C++).

I agree C/C++ is definitely worth learning just not as a *FIRST* language
(much more worth it then JavaShit).

> Crystal is based on Ruby, the most elegant language I have ever used, and
> I started with assembler on 8-bit micro controllers in the 80s. That's
> MPHO, but I've been coding for the Ruby interpreter since 2004. Crystal has
> a wonderful combination of both dynamic and static typing. It's a language
> with incredible depth but elegant simplicity, and it's extremely well
> documented from top to bottom.

Quick note dynamic typing in *EVERY* language I have seen it is just asking
for it!

I have used Ruby and really liked some aspects of it like mix-ins but soon
discovered that Java had them also in the much more elegant form
interface(s) (keyword) and "smart" enums [as far I know no other language
allows you to use enums this way] that allow you to have reflective like
behavior without the bottomless pit of reflection.

> As always, YMMV.
> --
> Don Wilde
> ****************************************************
> * What is the Internet of Things but a system      *
> * of systems including humans?                     *
> ****************************************************

Aryeh M. Friedman, Lead Developer,

Want to link to this message? Use this URL: <>