From owner-freebsd-questions@freebsd.org Tue Jul 14 09:17:09 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 8C9DB35BDA2 for ; Tue, 14 Jul 2020 09:17:09 +0000 (UTC) (envelope-from aryeh.friedman@gmail.com) Received: from mail-il1-x12b.google.com (mail-il1-x12b.google.com [IPv6:2607:f8b0:4864:20::12b]) (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 4B5ZfD5dSmz4345 for ; Tue, 14 Jul 2020 09:17:08 +0000 (UTC) (envelope-from aryeh.friedman@gmail.com) Received: by mail-il1-x12b.google.com with SMTP id t4so13644701iln.1 for ; Tue, 14 Jul 2020 02:17:08 -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=fuGqYXwSi7esLOt8AzpZf8/rTQHOJIfHWxDiieBfARg=; b=BBd1aX2qCRWmLSZqf6d365RVozwkovRwt9YflM5n1lXQRE8TlR3O1vtbESTyDCqRUv UWXMuCVk5/GYbFlz8gFMR6EQDfonJYxKoe8F3tucuccu1EQpV5OFa7O3fUkduMsIobDW qAVnvum0CXKiKBh0e/OU1uMBh7C2BVn5qNbCtDm+dkBgLEouYLIfIfHDlOHiK1bdlJll /PVjIV7SHJyxWJahm2r4vsaSJ2VDRSEyfCXeyeZwUgZdlOAPZAxlVqCtjmZc5lGg1pN8 5+ClZV5SsuzewFM4zkHEfHiH1e16LEMw8nwk+cDonTiDdF1o8Kpa0SO3i87Ey7rxuX9/ fDAQ== 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=fuGqYXwSi7esLOt8AzpZf8/rTQHOJIfHWxDiieBfARg=; b=b/Mlgea9dCtZpeRj5AdNPZdwAli5lWXwTUt8NdVcqng73irab8IUctT6I1biE//EUr I9mTQFlAwVviu6CiU6gxqfZBuuXoK9xkUQVO+tNuuzgbZpFT8dL0D+cRzULA3i/N98Bv QfbV6OsVRn9wBg0gNXJt0dldT4GpO3WYj/v78vPOjYcNcmUYSz2TKv1F2AzbnEkiPOx2 Xn+KoWpCX6wjIrm+q6PziXbYp1E8kq9nAsaO2Q7MBtOKT08A2j0PtWbKZxcgsFXB/uIn fTYHVOUst41ukk4eJPY/XyiS1xaF1Y7/k6JXlvts70nS1P+tl03QBGwMYRrYOgBr7w9Y Hr7A== X-Gm-Message-State: AOAM532Qlj7OBVsMXD+TRta5QmQHgOlvYMil+oXxEBgboCjgwhDjnpLd BpV4odq9+KAyNgUmNEAWCUV6NsnhSCXh3b5dEdQLOZcN X-Google-Smtp-Source: ABdhPJxtnfaS10rX9hATiXKONriZSzKSS6r3j+aPXPQsvAT4iWsDeZHhxdSo4MqV4Y+q4JbJypP7/Q1NGFOjM8IoLSU= X-Received: by 2002:a92:4913:: with SMTP id w19mr3596812ila.185.1594718227544; Tue, 14 Jul 2020 02:17:07 -0700 (PDT) MIME-Version: 1.0 References: <5a761348-fb9f-5cf3-e035-7ba42afcb221@gmail.com> <8fcd60d7-1de1-82dc-d840-2555663ac153@gmail.com> <20200714070831.f01a144e1dc808ebea421afe@sohara.org> In-Reply-To: <20200714070831.f01a144e1dc808ebea421afe@sohara.org> From: Aryeh Friedman Date: Tue, 14 Jul 2020 05:16:56 -0400 Message-ID: Subject: Re: Petite Cloud, CBSD, Intellij To: "Steve O'Hara-Smith" Cc: Don Wilde , Brandon helsley , FreeBSD Mailing List X-Rspamd-Queue-Id: 4B5ZfD5dSmz4345 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=BBd1aX2q; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of aryehfriedman@gmail.com designates 2607:f8b0:4864:20::12b as permitted sender) smtp.mailfrom=aryehfriedman@gmail.com X-Spamd-Result: default: False [-3.24 / 15.00]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; NEURAL_HAM_MEDIUM(-1.07)[-1.068]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-questions@freebsd.org]; NEURAL_HAM_LONG(-1.02)[-1.019]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::12b:from]; NEURAL_HAM_SHORT(-0.15)[-0.153]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FREEMAIL_CC(0.00)[gmail.com,hotmail.com,freebsd.org]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TAGGED_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] 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 09:17:09 -0000 On Tue, Jul 14, 2020 at 2:08 AM Steve O'Hara-Smith wrote: > On Mon, 13 Jul 2020 20:46:02 -0400 > Aryeh Friedman wrote: > > > And Java is one the most natural languages I have used > > Yes it can be, but the pile of excremental programming philosophy > that started with EJB, swallowed several books on design patterns (to be > worn on the sleeve in sentence length variable names) has festered for a > few decades since is anything but natural and pretty much requires an IDE > to write. Strangely it is surprisingly easy to write working code in but > remarkably hard to debug when it doesn't work for subtle reasons. > Almost anything can be misused or used in the wrong situations. Design patterns are in this camp, when used to solve real architectural issues (not just slavishly applying them without solving an actual issue) they are extremely useful if used sparingly. For example the MySQL interfacing I mentioned in the thread is partially solved by a strategy pattern used to fill in the dynamic parts of SQL statements for example the values and field names in a insert or update. If the DB we were interfacing too was not so badly designed (likely the most idiotic DB design I have seen *AND* the least understood by the programmers who work with it [for example instead of using autoincremented ID numbers the DB still uses numeric ID numbers but computes each one by counting the number of rows in the table and then adding 1 [yet when pressed about an obvious potential bug with this scheme the VP of Engineering in the vendor whose DB we need to interface said "don't go down that rabbit whole" and when we asked about the concurrency issues it raises we got "we will not answer irrelevent questions, nor do we support external modification of the DB, if you have any issues with the product contact tech support ".... this after telling us there where no concurrency issues when in fact we could clearly see from the transactions log that there had to be some concurrency going on because their app was referencing ID's in a select that had not been assigned/stored in the DB yet [that was the next query?!??!]... yes the orginal vendor app was also in Java but written by idiots that like you said likely have no idea why certain things are recommended they just use them and do so wrongly). Also keep in mind that Java is not the only language that has abusable features/debug nightmares, do I need to mention pointers when they are not being used for the one there is no other way to do it (guaranteed ability to address a specific segment of memory by it's address and the address being specified by the programmer.... this is almost never needed outside of a device driver and/or memory manager)... case in point of how hard pointer bugs can be to fine I spent 4 weeks debugging a crap load of unrelated bugs in a application I was writing in C++ that appeared to all be unrelated (stuff like local variables changing there values when they where in theory not in scope because the function had already called another function with a different stack frame) and finally tracked down to a really stupid typo in the memory manager I had also written for the app where I said "void *ptr=malloc(sizeof(size))" where "size" was the number of bytes the memory manager had been asked to allocate... Bottom line not everything is a nail so using a hammer on everything is wrong but it is equally wrong to use a screwdriver handle as a hammer when you find an actual real nail -- Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org