Deutsch   English   Français   Italiano  
<vpipsj$1ctsq$2@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: =?UTF-8?Q?Arne_Vajh=C3=B8j?= <arne@vajhoej.dk>
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: <vpipsj$1ctsq$2@dont-email.me>
References: <87ed24ma8k.fsf@lucy.meyer21c.net> <vk1tne$30e9m$4@dont-email.me>
 <vpfous$in7$1@panix2.panix.com> <vpig6q$1c14p$4@dont-email.me>
 <vpihqg$1ctsq$1@dont-email.me> <vpikfh$1eak4$5@dont-email.me>
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: <vpikfh$1eak4$5@dont-email.me>

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<T> = Map<T,List<T>>

fun dump(m: OneToMany<String>, rt: String) {
     println("$rt:")
     for(lang in m[rt].orEmpty()) {
         println("  $lang")
     }
}

fun main() {
     val m: OneToMany<String> = 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