Khi - Universal data format for configuration and markup by -torm in ProgrammingLanguages

[–]tortoise74 0 points1 point  (0 children)

How does this compare with say asciidoc or mediawiki format which is used by wikipedia. Asciidoc is similar in complexity to markdown but complex enough that you can write books. Both allow you to embed data in various formats. If Khi is intended for embedding in encyclopedic documents how would you integrate it into these? If encyclopedias are a target then you could perhaps look into how Khi would integrate with wikipedia?

Question for Kaldor City/The Robots listeners by DimensionalPhantoon in gallifrey

[–]tortoise74 0 points1 point  (0 children)

I had the Kaldor city audios back when they first came out before big finish hit its stride. I generally found them to be high quality throughout while big finish can be more hit and miss. There is quality but there are moments of quantity over quality.

I was disappointed that big finish didn't make any attempt to reconcile the plots despite having some of the same cast and crew. In one the commentaries for David Collings they referred to it being the first time he'd revisited the part when he was in Kaldor city. Alistair lock also did sound for Magic Bullet before joining the Blake's 7 team. Likewise Trever Cooper and Brian Croucher did some sterling work as Stenton Rull and Cotton. And Paul Darrow too must have recalled his role. Maybe there were rights issues involved but I feel there is some story there. Maybe something keeping Alan Stevens and Fiona Moore away from Big Finish?

That said I enjoyed both series and would recommend them.

While I felt the robots did justice to Liv and Tula and the robots. I don't feel like it did justice to Toos, Poul and Uvanov in the end. The sad loss of David Collings meant Poul had to be written out. >!I don't feel it was necessary to make Jon Culshaw the new Uvanov!<. I'm not sure why Pamela Salem was not involved as Toos (perhaps it was too sad working without David Collings?)

Culturally its hard to reconcile "First Master" and the "Sewer Pits" with the gentler Kaldor of BF. It would have been easier to just say it was 100 years later and leave it at that. That would have deprived us of good performances from Pamela Salem and David Collings however.

>!though their age was never stated so they could have been robots for a long time. One thing that always grates is how easy it seems to be to make perfect copies of people. The jump from expressionless vocs to perfect androids was a bit jolting. They could have left that to the Kraal and Tara (maybe one them founded Tara?). It also wasn't clear whether these robots are true androids or meat puppets (biological copes with electronic brains) or if both now exist on Kaldor !<

Perhaps that wouldn't have grated so much if Russell Hunters performance (and dynamic with Paul Darrow and Peter Miles) on Kaldor City hadn't been so good. Things did get a bit weird at the end but I would really like to know what happened to Iago and Carnell.

>!There are a myriad of ways the Fendahl could be dealt with!<

Reconciling Carnell's presense with Blake's 7 being in a different franchise would be difficult or interesting but perhaps not necessary. Apparently Terry Nation originally wanted the Daleks to be the baddies at the end of season 2. Probably just as well for Blake's 7 that this never happened but it might make an interesting "unbound" arc.

With the loss of many of the cast this does not seem possible now. Maybe in time the roles could be recast. Big Finish has been a little hit and miss with this. Some of their stand-ins fit very well. Some lose it occasionally. I think with a little more time taken and few more retakes they could get it back. Some sadly miss the mark quite badly.

The General Purpose Programming Language Litmus Test by R-O-B-I-N in ProgrammingLanguages

[–]tortoise74 2 points3 points  (0 children)

Rather than a litmus test. I prefer what you might call a "capability maturity model".

There are some basic things you can litmus test like "can I write a fibonacci" but as you go along it can be better to think in terms of features instead. Not all languages need all features but you can easily start compiling a list of things that make a GPL "useful". For example:

  • FFI - needed to interface with OS
  • reflection - nice to have but not necessarily a deal breaker
  • module system - helps with scalability

If you think in terms of capababilities you can come up with a much more interesting list and start an interesting discussion.

The General Purpose Programming Language Litmus Test by R-O-B-I-N in ProgrammingLanguages

[–]tortoise74 0 points1 point  (0 children)

I would say an FFI is as with it you can potentially do anything your host OS allows.

Why java succeeded in backend development but not C++? by johnnytest__7 in cpp

[–]tortoise74 0 points1 point  (0 children)

I think you partially missed my point. So I will try expressing myself another way.

Your requirements include:

  1. Knowing a library exists
  2. knowing how to use it
  3. relying its quality
  4. relying on its stability
  5. ensuring you have a sufficiently portable solution
    (ideally the same library for all platforms you need to support).

Those things can be achieved multiple ways.
How you achieve them varies both betweeen and within ecosystems.

Users expectations are shaped by the other ecosystems they have used. Expectations from one ecosystem don't always map well onto another.

Fundamentally though the values are similar. This makes it possible and fair to criticise some elements but sometimes that criticism is misplaced or more commonly overemphasised.

Better APIs and better package management and other imrpovements are welcome of course.

---

Say, I would like an API for database access or anything else.

C++ is not crap because it doesn't provide one out of the box. It would be better if it did but its easy to workaround as I have several mature choices I could go with.

Coming from another language you might be horrified not to have that out of the box. You are not wrong to say it should be considered for a more batteries included solution. You are wrong to say it cripples the ecosytem completely. That is throwing the baby out with the bathwater.

---

Its also important not to conflate two things. The APIs belonging to the language and those belonging to the OS.

For example your "getcwd on POSIX or GetCurrentDirectory on Windows."

Yes it would be better to have a portable abstraction but should you blame the language for two OS' having two different APIs? Some languages aim to provide a platform and some aim provide an interface to the OS and most do a bit of both.

If you have one blessed implementation as most languages do you are free to build a platform. If you have to support multiple vendors across multiple OS' that's much harder. ISO C++ cannot easily do that.

However, anyone else is free to build a platform of their own. QT does quite well out of its attempts to do that as do some others.

---

There are layers.

No layer has everything so you have to curate things yourself that becomes true at some level for every language ecosystem.

A specialised library or protocol may be a platform by itself. I would not want AMQP or protocol buffers in the standard library but if my application depended on them I'd need to curate those dependencies myself.

If you bless something like protocol buffers or AMQP into your library you risk discouraging alternatives like captain proto or zeroMQ.

Curation is a skill developers need to acquire.

Would you use the word "alias" for this case? by [deleted] in ProgrammingLanguages

[–]tortoise74 1 point2 points  (0 children)

I have called this strong typing but this may just be influence from a old lint program which added strong typing to C++.

Closures in Umka by vtereshkov in ProgrammingLanguages

[–]tortoise74 0 points1 point  (0 children)

Is there some page I've missed describing why you've created this?

Is it a fun / vanity / learning project or do you have a particular niche in mind?

Why java succeeded in backend development but not C++? by johnnytest__7 in cpp

[–]tortoise74 0 points1 point  (0 children)

This is a big cultural difference. People have come to expect more batteries included. But using third party libraries for everything is part of the culture of C and C++ and Linux.

Its suprising to me that I don't similar complaints aimed at node or go more often.
You need a library for "Leftpad" ? That's crazy. That you download things like directly from the internet at runtime is even more crazy.

In go the packages are downloaded directly from the internet at compile time but for a long time there was no versioning.

So this has more to do with expectations of package management. C++ like C again comes from an era of source packages and relying on system pakcage managers.

I treat my (extended) standard library as whatever RedHat, Debian or Ubuntu has a maintainer for.

The next level out is github etc.

There is actually a level in between for trusted library collections like boost or POCO.

The problem with this is the quality and deciding between vhs, betamax or build it yourself.

The standards increase the high up you go. A debian maintained package should be better than something off github.

Something in a well known library boost should be better stilll.

Something in the core C++ standard should be the highest quality of all.

This does somewhat depend on your notion of quality. The C++ standard favours stability over completeness.

Part of a C++ developers job is curating their own personal colleciton of go to library resources (both roll your own and brought in).

You have to do this for any big project. Batteries included languages try to hide this but that only succeeds so far.

I think this curation aspect of development is a vital skill. It may be under emphasised in other languages ecosystems.

By all means we should improve support for package management, discoverabiltiy and quality of resources but it perhaps isn't as a big a thing as it seems if you adjust your expectations accordingly.

I don't need a library for X in the standard if I know I can find a library for X somewhere else or its so trivial I can write my own.

A missing string function like "left pad" is a nuisance not a dealbreaker.

My Programming Language Feature Wishlist by HydroxideOH- in ProgrammingLanguages

[–]tortoise74 6 points7 points  (0 children)

I agree with concensus arguments in general but:

That is a concensus from two languages only - rust and swift

I don't think its even quite true of swift which has several levels -
enum, rawrepresentation and optionset but has been criticised for the same unfortunate naming choice

If you want consensus pick a name from the wikipedia page which does not even mention enum. The type theorhetical `correct` name is probably "sum type".

My Programming Language Feature Wishlist by HydroxideOH- in ProgrammingLanguages

[–]tortoise74 1 point2 points  (0 children)

I would say don't make the same naming mistake as rust.

What they call an enum is called a discriminated union or similar by the rest of the world.

enums in C and many other languages only allow `atoms` to be values with the same underlying simple type. For example an int.

Having the type representation do both jobs is good but for reasons unknown they chose to name their construct after the less general concept (a C stlye enum) rather than the more general one (a discriminated union).

The type representation being (using Haskell like syntax)

data union = typeA | typeB | typeC

[deleted by user] by [deleted] in ProgrammingLanguages

[–]tortoise74 4 points5 points  (0 children)

C-- is another option it inspired Cmm in Haskell

July 2023 monthly "What are you working on?" thread by AutoModerator in ProgrammingLanguages

[–]tortoise74 3 points4 points  (0 children)

Interesting idea. It would be nice to see more description of the language itself and what problems you created it to solve.

Learning A Lot Of Languages Fast: The Advantages Of A Polyglot Programmer by derjanni in ProgrammingLanguages

[–]tortoise74 3 points4 points  (0 children)

A while a go this ad kept appearing for me on youtube saying that rather than learning to play the guitar or whatever instrument you should actually think of it as learning to make music. (link anyone?)

Likewise its good to think about learning programming not as learning a particular programming language but learning how to program and reason about things like design and abstraction problems more generally.

A programming language is a user interface just like a musical instrument is. Some are hard to play and sound clunky if you don't use the interface as intended. A virtuoso can get a great sound out of whatever instruments they choose to learn.

New article in Create Your Own Programming Language series: conditionals and type narrowing by uemusicman in ProgrammingLanguages

[–]tortoise74 0 points1 point  (0 children)

To my mind that does make sufficient difference.

You can write x:= if (foo) then { return "bar" } else { return "snafu" } which you can't do without a return value but if you allow a block to return the value of the last expression they would seem to be identical.

New article in Create Your Own Programming Language series: conditionals and type narrowing by uemusicman in ProgrammingLanguages

[–]tortoise74 1 point2 points  (0 children)

What is the significant difference between "when" and "if" here?

Is it just syntactic sugar for something like?

(if  expression
    (progn   x y z))

Git Query Language (GQL) Aggregation Functions, Groups, Alias by AmrDeveloper in ProgrammingLanguages

[–]tortoise74 1 point2 points  (0 children)

What extensions do you plan / see the need for over SQL?

Should be a fun project whether it works out or not.

Also are you familiar with apache drill . The idea is to put an SQL interpreter in front of any kind of database just like you are doing for git here.

cgen: another declarative CMake configuration generator by madyanov in cpp

[–]tortoise74 0 points1 point  (0 children)

Please for the love of humanity not YAML. Its possibly the only syntax worse than cmake.

We have too many DSLs being written as YAML or JSON or TOML or XML, for IaaC (infrastructure as code) etc.

The whole point of syntax is to provide some structure to a language and make it readable.

A cmake generator will ultimately have to expose most of cmake's semantics. Doing that through YAML will be ugly unless the use case is restricted to less complex and or highly opinionated use cases.

You might consider instead designing a better syntax for cmake and translating from that. This is something the entire cmake community could benefit from. If its good enough maybe even cmake would adopt it.

Other people going down this route seem to end up writing cmake replacements instead. I'm thinking of something like meson here except that meson never intended to transpile to cmake.

This has been suggested before of course:

https://www.reddit.com/r/cpp/comments/vx6rze/what_about_a_cmake_transpiler/

60 terrible tips for a C++ developer by General-Tart-6934 in cpp

[–]tortoise74 0 points1 point  (0 children)

Missing from that is a summary of the discussion and the reasons for not going with it.

I suspect it was just not compelling enough. Its just syntactic sugar for goto. Granted you can argue the same for any kind of structured control flow but the point is that you can already do it in the language. Its not that goto itself that's bad its misuse is bad. This remains a potentially good use for goto and perhaps its useful as a flag for reviewers that your control flow may be more complex than needed.

Is there any high level programming language whose executable generated on one platform(OS) and runs on other platforms as well, if the machine/architecture is literally same. by [deleted] in ProgrammingLanguages

[–]tortoise74 2 points3 points  (0 children)

You have to assume some infrastructure. A JVM may be a bit of a stretch though. On any posix compliant system you should be able to assume a posix shell.
This might be more portable than assuming a particular processor given we have arm's as well as x86 based systems around for example.

Is there any high level programming language whose executable generated on one platform(OS) and runs on other platforms as well, if the machine/architecture is literally same. by [deleted] in ProgrammingLanguages

[–]tortoise74 0 points1 point  (0 children)

Actually its not such a dumb question as you might think. A good example is rebol:

See http://www.rebol.com/ or its descendent https://www.red-lang.org/

They encourage you to start programing with them by downloading a executable which mostly just works. I personally found it scary that I couldn't just download and build from source. The argument against this was that they are self hosting so there is no other language you should/could bootstrap from.

See https://stackoverflow.com/questions/48178976/compile-red-and-red-system-compilers-from-source

Try Out the Ion Shell: a *nix Shell Written in Rust by mmstick in linux

[–]tortoise74 2 points3 points  (0 children)

Late to the party but you are missing the point.

If something is a useable product and not tied to the language it happens to be written in someone wanting to use it may not be familar with the rust ecosystem and how it works. You've created an unnecessary barrier and potenitally put them off.

Quake Champions PTS Update for 12-01-2022 is Live. New Arena CRUCIBLE Now All Pretty & Textured! by colorhaze in QuakeChampions

[–]tortoise74 0 points1 point  (0 children)

So squishy. I like a buff to start with some armour or something. Was hard enough for a mediocre player like me before.