I am myself an immigrant to this country, one that has had itequally easy, if not more.
Lately, or perhaps for the last couple of years, I've struggled with negative feelings about the country. I do not like the direction things are moving politically and economically, nor how germans talk about politics, and the biggest reason to want to be in Germany is the very high living conditions one can have here. Culturally, it is hard not feel dettached when Germans themselves seem uninterested in cultural aspects that are normally a reason to want to learn a language (literature, films, etc). I can speak German, but maintaining it or improving it feels more like a chore than something exciting.
Anyway, this was a nice, positive read, and it made me happy to read it. It is often easier to focus on the negative aspects of things, while taking for granted the positive ones. Germany has a lot of good things going for it, and the power to be a better version of itself. A position lots of countries would wish they could be in. Sadly, this does not seem clear to the German political class.
You make a good point about cultural things that would make one excited to learn a language. But I really struggle to imagine what could be done to fix that? Injecting more money into the film industry would just lead it to the same people at the top of it where they'll produce the same mediocre output as they have for ages. hmm
German films are mostly not great, but if one wants to get immersed into the language, music and literature are much better places. And also comedy. The language allows for some great puns.
> A lot of good video games have decent German dubs
This in my experience only holds for AAA titles.
For many smaller games, the German translation/localization is so bad that if one's English level is not insanely bad, it's even more comfortable to play the English version, and use a dictionary for lots of words (i.e. invest more time using the dictionary than playing the game) than tolerating the pain of how bad the German translation/localization is.
Idk, do you play those point and click adventure games from early 2000s? Syberia? Broken Sword? they’re decent. Deponia also good, Truberbrook. What I cannot stand are things that are medieval and then everyone refers to you as Ihr instead of du or Sie. Was that even a thing? Even the star wars games do it… which i guess it’s because jedi “knights”.
> do you play those point and click adventure games from early 2000s?
Yes (but this is off-topic).
> Deponia also good, Truberbrook.
For both of these games, the original native version is in German, so of course their German (not-)translation is good. :-)
> What I cannot stand are things that are medieval and then everyone refers to you as Ihr instead of du or Sie. Was that even a thing? Even the star wars games do it… which i guess it’s because jedi “knights”.
The Pluralis Majestatis is a formal addressing that is more formal than (singular) "Sie" for a single person (typical for addressing aristocrats of higher a noble rank).
The "Pluralis Majestatis" is not to be confused with the Pluralis Auctoris
Concerning your point "What I cannot stand are things that are medieval and then everyone refers to you as Ihr instead of du or Sie. Was that even a thing?" Even the star wars games do it… which i guess it’s because jedi “knights”.
As I already hinted: this is the correct for medivial setting if you have to address people of a higher a noble rank (if you don't use it, it would feel deeply wrong to native German speakers).
Concerning "Star Wars": I know little about this topic, but your point shows that for a proper German localization, you really have to think deeply about which kind of group needs which kind of addressing to which group (informal pronouns, formal pronouns, Pluralis Majestatis, ...).
For such settings which have no historical reference such as Star Wars I consider it to be very plausible that if the original setting was written in English, the authors never actually thought about such questions, so it is very likely that such questions were hushed over when a localization was done under time pressure (or English native speakers who commissioned the translation/localization underestimated the importance of such considerations).
It's one of the things I can't stand. Just by hearing, not even seeing the actors or knowing the movie title, you can hear it's a dubbed movie. I always find it uncanny to listen to.
A lot of Germans have Satellite TV, where it would be possible to send multiple audio tracks. But they use it to send dubbed German and dubbed French (in case of ARTE). AHHHH.
German movies can be great though. Land of Mine (2015) comes to mind.
German dubs used to be great in the 80s and 90s. Check some TV shows from that time to see what I mean. They used to take care that the voice fit the actual situation, mood, and character. There were many good dubbing voice actors who sometimes became famous in their own right.
I'm not sure why, but something changed in the late 90s, early 00s. Suddenly, all the voice actors started shouting all their lines, and seemed obsessed with extra weird or supposedly funny enunciation. No relation to what's happening on screen.
Hard disagree. German dubs are extremely fake sounding and there way to few voice actors doing them so everything sounds the same. Completely unwatchable if you haven't grown up with that crap.
I wanted to leave this Faden for all the immigrant voices but this misinformation simply cannot stand, lol.
Dubbing for foreign movies is an art long lost in Germany; the East Germans (DEFA) were especially good at it, my favorite being Karel Steklý's eternal Dobrý voják Švejk (The Good Soldier Schweik), for which DEFA tapped the Austro Rudolf Wessely.
And today? Whenever I get exposed to a German dub I get reaquainted why I call that stuff the Fremdschämspur (the cringe track).
I have no idea what you mean, because I also feel dubbing in Germany comes out pretty much right. Mouth is moving (mostly) in sync, even. I can compare with other countries where I watched dubbed stuff, but let's not compare and stick to Germany: well done.
> [...] because I also feel dubbing in Germany comes out pretty much right.
You've got to be kidding me, lol. Anyway, voice (character) mismatch is the first thing I often notice. How often have I heard a commanding adult in English dubbed into what sounds like a tortured, overemoting teen/twen in the German version (I feel it's especially pronounced in women's characters but that might be just sample bias). Even deadpan delivery sounds tryhard. And it's not just for English, either.
Modern German dubs, to me anyway, are their own comedic genre. And make no mistake: I'm fuckin' serious about it. Just study some classics. You'll see.
> Injecting more money into the film industry would just lead it to the same people at the top of it where they'll produce the same mediocre output as they have for ages
Not necessarily, if you apply discipline and intentionality.
Canada famously created “CanCon” (Canadian Content) by law. They forced media in the country to be X% local, and that built out the industry by sheer necessity. The reputation was poor in the early years, but now a talent pipeline, local services, and industrial knowledge has built up and they have a thriving entertainment industry.
Germany has the disadvantage against Canada which could benefit from speaking English and cross selling to the US and UK. But it can become a source of local pride and distinction. The French are very proud of their language, even though it’s also not heavily spoken internationally.
The building blocks exist to successfully build cultural capital if it’s a priority.
Well, we sold our most prestigious film making location to the US fairly recently, a few years ago (Filmstudio Babelsberg). Not much good has happened to it since then. Admittedly, it was already not going too well before, but we can expect further decay at the hands of US investors.
German culture is imho stuck in a permanent subsidy slop problem. Basically every German film is written to appeal to the subsidy committee, not any greater audience. And it shows.
Arguably the average Hollywood productions aren't culturally stellar either, but I digress. To me what did it was having a kid in the kindergarten/school and everything related to that. You get to participate to all kinds of social setups (you could avoid them but what's the point), you get to watch German movies with them, German TV to chat about, you get into the daily lives of your co-citizens. Don't worry, they don't do much Goethe either, if that scares you. Just normal people doing normal stuff, maybe joining some (team) sports club and and and. It just works naturally.
> Culturally, it is hard not feel detached when Germans themselves seem uninterested in cultural aspects that are normally a reason to want to learn a language (literature, films, etc).
I rather disagree:
Many German movies that are produced don't fit my taste (the reasons are a little bit off-topic), and there exist quite a few Germans who think similarly. I could come up with a list of German movies that I like, but this is something that would take a little bit of thinking/effort.
On the other hand, in my experience/observation/bubble many Germans are quite interested in German literature. I could very easily come up with dozens of books of German authors that I like (of course, such a list would be strongly biased by my own taste).
Thus I would claim that (native German) literature is much more deeply ingrained in German culture than (native German) movies, and I am really surprised that you seem to live in a strange bubble where nobody in it seems to be interested in reading belletristic books.
What a fantastic article. I could not care less about the actual topic, but in these times of literacy scarcity, it is refreshing to see someone actually being able to read through sub-text and present their views in a well-reasoned manner.
Unsurprisingly, this seems to make quite some people angry.
I think part of being well-reasoned is being honest, and they're certainly being honest. I don't agree with their means, though. Bill is a complex person, and you don't have to stalk him to learn about him. He interacts with newbies plenty in the Discord server. I find him to be pretty nice in those interactions.
I think the article is pretty fair at presenting GingerBill's legitimate grievances, Wikipedia shortcomings, acknowledging that GingerBill can be constructive and, at the same time, recognizing that the current interactions are coloured by his particular ideological grievances.
It is only at the end of a very long, well-argued article that he is very critical of GingerBill's positions. I don't think I agree that calling someone out on their contradictions or political opinions constitute "stalking".
That’s fair, I think I’m mostly referring to their assessment of how they could possibly come to evaluate his position as BDFL (which I realize is totally subjective) and I disliked that they didn’t bother trying to talk to him… which I’m not being super rational about, people in his position aren’t always accessible.
The point is this comes down to a foreign policy disagreement that isn’t germane to Ellison’s comments on surveillance. (I can come with a litany of policy disagreements with anyone of Ellison’s stature, some of which I probably feel about strongly.)
Read in good faith, it’s overzealous advocacy. In bad faith, which I don’t assume here, it serves to get this discussion flagged off the front page.
2. Conservative billionaires, including Ellison, consolidating ownership of social media, print media, TV media, etc.
3. NSPM-7 & the current admin's appetite to criminalize speech
4. The current administration kowtows to Netanyahu, who relishes in conservative ownership of TikTok
The dots are all there: if you express something that doesn't following an accepted US stance, like maybe its stance on Israel, maybe on TikTok, it gives Trump the ability to easily find, label & punish you as a terrorist, maybe even at Netanyahu's request. Trump's desire to do things like this has been explicitly stated since the death of Charlie Kirk. He's always talked about his desires to throw his political enemies in jail.
Even before this, the admin has been targeting people like Mahmoud Khalil, Mario Guevara, etc. for speech.
You don't think that the fact that Ellison is a staunch defender of regimes that disregard the international order in favour of military might is relevant to the fact that is also advocating for building a surveillance state?
In case you don't, to me it's painfully clear that these are just different aspects of the move towards more authoritarian forms of government. You CANNOT support a genocide and expect that this will not have an effect on democracy.
EDIT: Also note that I am trying to take your comments on good faith, but characterising support for genocide as "a foreign policy disagreement" feels a bit like an understatement.
> it's painfully clear that these are just different aspects of the move towards more authoritarian forms of government
Sure. But, like, the evidence for that is the advocacy for a surveillance state. Not his support for a foreign policy project that yes, involves supporting an autocratic government in Israel (fighting, let’s be fair, an autocratic force in Gaza backed by an autocratic state in Iran), but also a whole bunch of other irrelevant things.
> I was active in the Python community in the 200x timeframe, and I daresay the common consensus is that language didn't matter and a sufficiently smart compiler/JIT/whatever would eventually make dynamic scripting languages as fast as C, so there was no reason to learn static languages rather than just waiting for this to happen.
To be very pedantic, the problem is not that these are dynamic languages _per se_, but that they were designed with semantics unconcerned with performance. As such, retrofitting performance can be extremely challenging.
As a counterexample of fast and dynamic: https://julialang.org/ (of course, you pay the prize in other places)
I'm sort of surprised I'm not seeing any modernized dynamic scripting languages coming out lately, despite the general trend towards static languages. A fast dynamic language, with a day-one concurrency story, and some other key feature that pushes it ahead seems possible to me. (I dunno, maybe a nice story for binding to Rust instead of binding to C at this point could be enough to lift a language off?) I don't see any reason why dynamic scripting languages as a category couldn't do that. The ones we have now don't, not because the category makes it impossible, but because by the time that was desirable they just had too much baggage, and are all still struggling with it even a decade after they started.
I do quibble with fast, and I also quibble with "dynamic language". Its variables are untyped, but that about ends the "dynamicness" of the language. It's not what people mean.
Elixir is closer, though BEAM in general still leaves a lot of performance on the table. I'm somewhat surprised that tracing JITs and stuff have not managed to make more progress than they have, but it could be lack of developer time. Unfortunately JITs eat that voraciously.
I'd expect this to be a mutable language, though part of that "day one concurrency story" could be an inability to transmit references between something like Erlang "processes".
Welcome to Elixir. A concurrency story baked into its architecture, Rustler for trivial Rust bindings, a full set of project tooling (package management, deployment handling, etc). And a killer combo of database bindings in the form of Ecto and a best-in-class web framework from Phoenix.
And it's got an unusually broad base of existing libraries for how young it is, both because writing bindings is really easy, and because you can import Erlang libraries which have been around since the 80's.
What are examples of those semantics? I'm guessing rebindable functions (and a single function/variable namespace), eval(), and object members available as a dict.
Some examples that come to mind:
You can inspect the call stack, and get a list of local variables of your callers.
You can assign to object.__class__ to dynamically change an existing object's class at runtime.
You can overwrite every operator, including obj.field access, dynamically at runtime (including changing an existing class)
> Julia: Julia is another great language with an open and active community. They are currently investing in machine learning techniques, and even have good interoperability with Python APIs.
For a language that announced itself (and raised a lot of money on the premise of) claiming to be "a Python superset", this does not sound like a huge achievement.
In all fairness, their website now reads: "Mojo is a pythonic language for blazing-fast CPU+GPU execution without CUDA. Optionally use it with MAX for insanely fast AI inference."
So I suppose now is just a compiled language with superficially similar syntax and completely different semantics to Python?
I think it was pretty clear immediately that running python code was a far away goal. There was a lot more talk about lifetimes and ownership semantics than details about Python interop. Mojo is more like: Can we take the learnings of Swift and Rust and solve the usability and compile time issues, while building on MLIR to target arbitrary architectures efficiently (and call it a Python superset to raise VC money).
That said, the upside is huge. If they can get to a point where Python programmers that need to add speed learn Mojo, because it feels more familiar and interops more easily, rather than C/CPP that would be huge. And it's a much lower bar than superset of python.
It marketed itself explicitly as a "Python superset", which could allow Python programmers to avoid learning a second language and write performant code.
I'd argue that I am not sure what kind of Python programmer is capable of learning things like comptime, borrow checking, generics but would struggle with different looking syntax. So to me this seemed like a deliberate misrepresentation of the actual challenges to generate hype and marketing.
Which fair enough, I suppose this is how things work. But it should be _fair_ to point out the obvious too.
Absolutely. The public sales pitch did not match the reality. This is what I meant with the "Claim to be Ṕython to get VC money" point.
To first order, today every programmer starts out as a Python programmer. Python is _the_ teaching language now. The jump from Python to C/Cpp is pretty drastic, I don't think that it's absurd that learning Mojo concepts step by step coming from Python is simpler than learning C. Not syntactically but conceptually.
Maybe young generations have some issue learning polyglot programming, I guess.
While I agree using Mojo is much preferable to writing C or C++ native extensions, back on my day people learned to program in K&R C or C++ ARM in high school, kids around 12 years old, hardly something pretty drastic.
Many famous Speccy and C64 titles, written in Assembly, were written by bedroom coders between the ages of 14 and 16 years old, getting some pocket money writing them on the UK scene.
Get hold of Retro Gamer magazine for some of their stories.
I've tried learning C a couple times and given up because the curve is too steep to be worth the climb. It's not even the language itself, it's the inherited weight of half a century's worth of cruft. I can't spend weeks fighting with compiler nonsense, header files and #include. Screw it, I'll just use Go instead.
I'm learning Rust and Zig in the hope that I'll never have to write a line of C in my career.
Geez, what a comment. C is much much more simpler than Rust. You’re not supposed to be spending weeks fighting includes or compiler errors, that means you’re have some very basic misconceptions about the language.
Just read K&R “The C programming language” book.
It’s fairly small and it’s a very good introduction to C.
C syntactically is straight forward, but conceptually may be harder than Rust. You’re exposed to the bare computer (memory management, etc) far more than with a GC language or even Rust arguably, at least for simple programs.
Towards deployment is even harder. You can very easily end up writing exploitable, unsafe code in C.
If I were a Python programmer with little knowledge about how a computer works, I’d much prefer Go or Rust (in that order) to C.
This is true, but when you get something wrong related to the memory model in C, it just says "segfault". Whereas in Rust it will give you a whole explanation for what went wrong and helpful suggestions on how to fix it. Or at the very least it will tell you where the problem is. This is the difference between "simple" and "easy".
That applies only if you take "memory model" to mean modeling the effects of concurrent accesses in multithreaded programs.
But the term could also be used more generally to include stuff like pointer provenance, Rust's "stacked borrows" etc.
In that case, Rust is more complicated than C-as-specified. But C-in-reality is much more complicated, e.g. see https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2263.htm
The model you're referring to, a Memory Ordering Model, is literally the same model as Rust's. The "exception" is an ordering nobody knows how to implement which Rust just doesn't pretend to offer - a distinction which makes no difference.
I do sympathize with the parent: The language itself might not be that difficult but you also have to factor in the entire ecosystem. What's the modern way to a build a GUI application in C? What's the recommended way to build a CLI, short of writing your own arg parser? How do you handle Unicode? How do you manage dependencies, short of vendoring them? Etc.
Errors too. When, inevitably, you make mistakes the C might just compile despite being nonsense, or you might get incomprehensible diagnostics. Rust went out of its way to deliver great results here.
I am not arguing about how good or easy it is to use C in production, I’m merely stating that parent complaints about weeks of insolvable errors and issues with includes screams that he needs to read some good resource like book, because he is definitely misunderstanding something important.
THe thing is, if one is an expert it is incredibly difficult to understand the beginner perspective. Here is one attempt:
C is simpler than Rust, but C is also _much_ simpler than Python. If I solve a problem in Python I have a good standard library of data types, and I use concepts like classes, iterators, generators, closures, etc... constantly. So if I move to Rust, I have access to the similar high-level tools, I just have to learn a few additional concepts for ressource management.
In comaprison, C looks a lot more alien from that perspective. Even starting with including library code from elsewhere.
I think one of the "Python superset" promises was that any particular dev wouldn't need to learn all of that at once. There could exist a ramp between Python and "fast python" that is more gradual than the old ways of dropping into C, and more seamless than importing and learning the various numpy/numba/polars libraries.
FWIW generics are already a thing in pure Python as soon as you add type annotations, which is fast becoming the default (perhaps not the least because LLMs also seem to prefer it).
I suppose if you accept the innocent-looking "#"+"#"=="##" then your example kind of algebraically follows. Next it's time to define what exp("#") is :)
* does different things depending on the types of the operands, which is Python's strong typing at work, not Perlesque weak typing. Repeating a string is a useful thing to be able to do, and this is a natural choice of syntax for it. The same thing works for lists: [1]*3 == [1, 1, 1].
It does unfortunately mean that sometimes `*` will work (and produce an incorrect result) rather than immediately failing loudly with a clear error message in the context in which it's actually intended to be numerical.
More broadly this is the same argument as whether overloading `+` for strings is a bad idea or not, and the associated points, e.g. the fact that this makes it non-commutative - the same all applies to `*` as well, and to lists as much as strings. At least Python is consistent here.
Although there is one particular aspect that is IMO just bad design: the way `x += y` and `x = y` work. To remind, for lists these are not equivalent to `x = x + y` and `x = x y` - instead of creating a new list, they mutate the existing one in place, so all the references observe the change. This is very surprising and inconsistent with the same operators for numbers, or indeed for strings and tuples.
The real unique selling point of Mojo is "CPU+GPU execution without CUDA", specifically, you write code that looks like code without worrying about distinctions like kernels and device functions and different ways of writing code that runs on GPU vs. code that runs on CPU, and mojo compiles it to those things.
While much has changed since then, the architecture is effectively the same. Julia's native CUDA support simply boils down to compiling via the LLVM .ptx backend (Julia always generates LLVM IR, and the CUDA infrastructure "simply" retargets LLVM to .ptx, generates the binary, and then wraps that binary into a function which Julia calls), so it's really just a matter of the performance difference between the code generated by the LLVM .ptx backend vs the NVCC compiler.
> For a language that announced itself (and raised a lot of money on the premise of)
claiming to be "a Python superset", this does not sound like a huge achievement
I feel like that depends quite a lot on what exactly is in the non-subset part of the language. Being able to use a library from the superset in the subset requires being able to translate the features into something that can run in the subset, so if the superset is doing a lot of interesting things at runtime, that isn't necessarily going to be trivial.
(I have no idea exactly what features Mojo provides beyond what's already in Python, so maybe it's not much of an achievement in this case, but my point is that this has less to do with just being a superset but about what exactly the extra stuff is, so I'm not sure I buy the argument that the marketing you mention of enough to conclude that this isn't much of an achievement.)
I've written this somewhere else before, Modular did not raise $130m to build a programming language, nobody does that.
They raised that much money to revolutionize AI infrastructure, of which a language is just a subset. You should definitely check some of the things they've put together, they're amazing
Yes. They are revolutionizing AI infrastructure but I guess a lot of world is just babbling about AI, but not every developer needs to worry about AI.
And so his improvements in mojo and now calling mojo code from python just make a lot more net positive to the community than being, some other Ai infrastructure company.
So I do wish a lot of good luck to mojo. I have heard that mojo isn't open source but it has plans to do so. I'd like to try it once if its as fast / even a little slower than rust and comparable to understanding as python.
Agreed, Modular is walking a very fine line, and they're doing so by trading on the reputation of Chris Lattner.
On the one had, as the other poster noted, no one raises $100M+ for a programming language; programming languages have no ROI that would justify that kind of money. So to get it, they had to tell VCs a story about how they're going to revolutionize AI. It can't just be "python superset with MLIR". That's not a $100M story.
On the other hand, they need to appeal to the dev community. For devs, they want open source, they want integration with their tools, they don't want to be locked into a IP-encumbered ecosystem that tries to lock them in.
That's where the tension is. To raise money you need to pretend you're the next Oracle, but to get dev buy-in you have to promise you're not the next Oracle.
So the line they've decided to walk is "We will be closed for now while figure out the tech. Then later once we have money coming in to make the VCs happy, we can try to make good on our promise to be open."
That last part is the thing people are having trouble believing. Because the story always goes: "While we had the best intentions to be open and free, that ultimately came secondary to our investors' goal of making money. Because our continued existence depends on more money, we have decided to abandon our goal of being open and free."
And that's what makes these VC-funded language plays so fraught for devs. Spend the time to learn this thing which may never even live up to its promises? Most people won't, and I think the Darklang group found that out pretty decisively.
I don't think investors look at what makes a net positive to the community when making large investments like in Modular. I was calling out the part of the post that said Modular raised a lot of Money to develop Mojo, that isn't entirely true as just creating a language isn't enough reason to invest $130m into a company, no matter how much net-positivity the language would bring.
It was never going to have Python semantics and be fast. Python isn't slow because of a lack of effort or money, it's slow because of all the things happening in the interpreter.
> Further, we decided that the right long-term goal for Mojo is to adopt the syntax of Python (that is, to make Mojo compatible with existing Python programs) and to embrace the CPython implementation for long-tail ecosystem support
Possibly some kind of rare cascade failure where it might have been on the edge for a while, and some small event happened that tripped things, similar to the american northeast blackout in 2003. High demand, plus a power station going offline meant more demand on some interconnects, which shorted on trees and were cut off, putting more load on other lines until the entire system collapsed
Big companies tend to develop cult dynamics. This is not an exaggeration, but a consequence of how humans tend to operate in large amounts. And I'd wager that in the case of Silicon Valley tech companies, this is also something that they embrace and nurture. I don't think this is a controversial take at all, and rather obvious.
She was probably not "afraid of being let go" (fired), but had convinced herself that it was of the utmost importance to have this level of committment. The book probably reads similar to those books of someone who leaves their church or cult.
They tend to have cult dynamics because the people who subscribe to the cult dynamics are the ones who get promoted. If you’re happy to just make a living as a software engineer instead of trying to propel your way up the ladder of the world’s richest companies then you can live very happily and comfortably.
Yes, but this is not the people they'll hire for this kind of job. They're looking for the batshit crazy that will do this kind of stuff. This is the reason for the psychological profile they do in lieu of interview, when hiring managers.
That's mostly because Julia questions get answered on its Discourse or Slack. The sharp decline is due to an automatic cross-post bot that stopped working.
No one bothered fixing it, in great part due to Discourse being the main place of discussion, as far as I know.
I think it ultimately is a sign of the need for better languages. Of course, there are always engineering compromises. But I think a better world is possible, in which we don't have massive software projects written in JavaScript or Python.
Lately, or perhaps for the last couple of years, I've struggled with negative feelings about the country. I do not like the direction things are moving politically and economically, nor how germans talk about politics, and the biggest reason to want to be in Germany is the very high living conditions one can have here. Culturally, it is hard not feel dettached when Germans themselves seem uninterested in cultural aspects that are normally a reason to want to learn a language (literature, films, etc). I can speak German, but maintaining it or improving it feels more like a chore than something exciting.
Anyway, this was a nice, positive read, and it made me happy to read it. It is often easier to focus on the negative aspects of things, while taking for granted the positive ones. Germany has a lot of good things going for it, and the power to be a better version of itself. A position lots of countries would wish they could be in. Sadly, this does not seem clear to the German political class.