From owner-freebsd-questions@freebsd.org Tue Jul 14 00:46:16 2020 Return-Path: Delivered-To: freebsd-questions@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 543ED377438 for ; Tue, 14 Jul 2020 00:46:16 +0000 (UTC) (envelope-from aryeh.friedman@gmail.com) Received: from mail-il1-x12a.google.com (mail-il1-x12a.google.com [IPv6:2607:f8b0:4864:20::12a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4B5MJl2zFkz3X07 for ; Tue, 14 Jul 2020 00:46:15 +0000 (UTC) (envelope-from aryeh.friedman@gmail.com) Received: by mail-il1-x12a.google.com with SMTP id k6so12847586ili.6 for ; Mon, 13 Jul 2020 17:46:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=02k5aiqueZ4m5WeJmH7leegNe6Tw8VC3y1s0uZssaO8=; b=q+ojF6kcHgZcIGqOInG2V77MHVdwl1OlElf5WSH0TDtOgtLaFu+C+XJQYehEimugQz oDrX92QzOEJdkDA5hNvl0DxLeY+ESITD+EUvRuxPIqDFnUuwqo8vjBcD6ciu3njOdolU 2eQbVDmf9Kd5U/lU2UejClWKNISp95Mku/xaubByQMNhk6h/WqKlb+awR/biCIBdWB0t 6t7/DlIMUYQ/M4QGgkgZrqvsbL1dwCwurD2NNHyqJQ7CGR18eY5lhZwqb6KgIM+37CZe m0N+0ClR7cDDWB3xZnc3zkqZVG2MVLW8M/5z+mdr4lA3RAo3kK8+IsdfSeZf+M03EWy4 A1+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=02k5aiqueZ4m5WeJmH7leegNe6Tw8VC3y1s0uZssaO8=; b=ZKiTnfgNIb2LfzHDvqSLh3ziQWWMupdzYjqhD8jwRn+yHmgMXCYQr9Tv+JpT/9ClDK eVqpQTYo5Kup2Fbdw8c6jNWecbVi9Mi+AjDWH5O/TCrD4iQltAd6Nju/cuQuy7A0wNCr oTA1o1fNDvJ80o1FF6Nvzh0OjB6HZpg7Xhf8aWfXrFTitt/0OgHm96LBjaHfObckxPau NoZIuPgPGc0dRdlCmpJxRjz02gTQ3NFoGDyLp9RXEI5E4O+PkGSr+4zPor6HQpo6nzAW Sf3nINecLdfAG55nciPY+mncQj1XChvv9/btO2+3RTBywEbO4RnAMTefXNfoe75GwouH JfEg== X-Gm-Message-State: AOAM531hzDB//g0sbh+izpzU0z5Kw3ALUetZcJjTHnw6YdrUIXRlt1Vt sB53eVcvBoDIPZT1erlshHAz2dGYsfiAyX0unRQ= X-Google-Smtp-Source: ABdhPJwDGnsWwvZ7I2Qpi6lAtQJyifEv9UqQ+yfFa6m/kmwUnSHyIN7PeaarpW17Brl8SkxDfB/pG8C4wE69MalvneE= X-Received: by 2002:a92:9f06:: with SMTP id u6mr2417868ili.29.1594687573429; Mon, 13 Jul 2020 17:46:13 -0700 (PDT) MIME-Version: 1.0 References: <5a761348-fb9f-5cf3-e035-7ba42afcb221@gmail.com> <8fcd60d7-1de1-82dc-d840-2555663ac153@gmail.com> In-Reply-To: From: Aryeh Friedman Date: Mon, 13 Jul 2020 20:46:02 -0400 Message-ID: Subject: Re: Petite Cloud, CBSD, Intellij To: Don Wilde Cc: Brandon helsley , FreeBSD Mailing List X-Rspamd-Queue-Id: 4B5MJl2zFkz3X07 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=q+ojF6kc; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of aryehfriedman@gmail.com designates 2607:f8b0:4864:20::12a as permitted sender) smtp.mailfrom=aryehfriedman@gmail.com X-Spamd-Result: default: False [-2.59 / 15.00]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TAGGED_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.95)[-0.954]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; NEURAL_SPAM_SHORT(0.39)[0.388]; NEURAL_HAM_LONG(-1.03)[-1.027]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-questions@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::12a:from]; RCVD_COUNT_TWO(0.00)[2]; FREEMAIL_CC(0.00)[hotmail.com,freebsd.org]; RCVD_TLS_ALL(0.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.33 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jul 2020 00:46:16 -0000 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: >>> >> 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. >> > > 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, http://www.PetiteCloud.org > > 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 > . > 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: https://www.bestcomputerscienceschools.net/what-languages-will-i-learn-in-a-computer-science-program/ ... 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, http://www.PetiteCloud.org