Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connectionsPath: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: =?UTF-8?Q?Arne_Vajh=C3=B8j?= Newsgroups: comp.os.vms Subject: Re: OpenVMS system programming language Date: Mon, 24 Feb 2025 16:55:31 -0500 Organization: A noiseless patient Spider Lines: 57 Message-ID: References: <87ed24ma8k.fsf@lucy.meyer21c.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Mon, 24 Feb 2025 22:55:32 +0100 (CET) Injection-Info: dont-email.me; posting-host="7f89da9d596b0c7b8648786f06f9b6d6"; logging-data="1472410"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/uUfom6FIwtt5ZmALp7IUalgh6Ff/5xZA=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:koEdjZq+ehGdKc6sfZRXn2gMCCg= Content-Language: en-US In-Reply-To: On 2/24/2025 3:23 PM, Lawrence D'Oliveiro wrote: > On Mon, 24 Feb 2025 14:37:54 -0500, Arne Vajhøj wrote: >> The lack of unsigned integers is a PITA. > > Also the lack of typedefs. A basic convenience, but such an important one. typedef is very much used in C. Type declarations are part of the Pascal way. But I don't think it is the same in OO languages. I have never heard a Java developer ask for it. C# has the functionality (in using directive). But I have never used it myself and I don't think I have ever seen code using it (note: I am talking about using for type alias only - using for namespace alias is used occasionally). Kotlin also has it and even though it is used then I would call it rare. I cannot demo C# on VMS< but Kotlin runs on VMS, so: $ type ta.kt typealias OneToMany = Map> fun dump(m: OneToMany, rt: String) { println("$rt:") for(lang in m[rt].orEmpty()) { println(" $lang") } } fun main() { val m: OneToMany = mapOf(Pair("JVM", listOf("Java", "Kotlin", "Scala", "Groovy")), Pair("CLR", listOf("C#", "VB.NET", "F#"))) dump(m, "JVM") dump(m, "CLR") } $ kotlinc """ta.kt""" $ java -cp .:/disk0/net/kotlin/kotlinc/lib/* "TaKt" JVM: Java Kotlin Scala Groovy CLR: C# VB.NET F# Arne