As a professional videogame programmer, I can assure you that I haven't heard functional programming discussed much at work or among other peers in the industry. Videogames are giant, data-intense state machines, with lots and lots of state to track and manage. My feeling is that it's really not a great fit for functional programming. Traditional object-oriented programming is *heavily* used (C++ is the defacto industry standard language), because that's a reasonable and proven way to encapsulate complex, independently-operating entities into well-behaved packages of data + code.
It's the same reason that the industry doesn't extensively use unit testing for engines and game code (not broadly at least), which may surprise some programmers in other fields. The reason is simple: many game engine tasks can't be boiled down into simple algorithmic data transformations that can be checked and verified by a simple function. For instance, how would one write a unit test to ensure audio is playing correctly, or a graphic shader is working as intended, or a physics engine "looks" correct in realtime interactions? It's not really practical. Thus, videogames tend to rely on integration tests using QA team members to spot anomalies.
In short, not every programming paradigm can be effectively applied to every problem. That's not to say you *couldn't* write a game purely in a functional language, of course. I just don't think you'd be working to FP strengths.
Probably true, but even as someone who is likely your political polar opposite, I've always found your arguments to be consistent and well thought-out, even if I don't necessarily agree with all your positions or conclusions. For some reason, I think it's easier to remember a single negative moderation or hateful comment rather than a dozen encouraging responses or positive mods.
Unfortunately, many people use the relative anonymity as an excuse for venting their own frustration, intentionally lashing out at others with caustic remarks or outright trolling. I've found that viewing such people with pity rather than frustration helps alleviate the frustration of dealing with rude people. What sort of person feels the need to lash out at others online? It's sort of pitiable, and I tend to think "how crappy is your life that online trolling is how you choose to interact with others?"
I'm not sure there's any solution, other than ignoring the trolls and trying to set a good example yourself.
Few "in the OOP world" (whatever that means) promotes inheritance as the end-all-be-all these days. I think that went out of style fifteen or twenty years ago. The notion of eschewing inheritance whenever possible has its own Wikipedia entry, and was described in detail in the famous "Design Patterns" gang of four book.
That being said, there's a time when reality can intrude on "theoretically" clean designs or programming paradigms. Functional programming and unit testing are things you don't see widely used in the videogame development world, at least that I've seen. Not all paradigms and patterns apply to all types of problems. Ultimately, I think that's the most valuable thing I've learned over time. Use the tools and techniques most appropriate to the problem at hand you're trying to solve. Religious wars over programming techniques and methodologies are for pedantic fools.
I agree with you about the cleanliness of Pascal. But just FYI the current MacOS (OSX) is mostly written in C, assembly, and Objective-C, since its based off BSD. You're probably thinking of the original Mac OS, but from what I understand, it's not *quite* correct that it was Pascal either. Instead, they hand-translated some existing Pascal routines from the Apple Lisa into assembly to save on memory. So, it sounds like it was the Apple Lisa that largely used Pascal.
Also, it's wildly incorrect to say there were "no exploits". All modern operating systems have had LOTS of exploits over the years, because very early on, security wasn't even considered. Probably not quite as many as Windows, but certainly not zero.
Same for me initially: my first language was AppleBASIC, which I taught myself thanks to a wonderful book that almost seemed written for kids (which I was at the time). I spent endless evenings at my parent's workplace using that computer, and eventually it became mine, since I was the only one really using it. Glorious days!!!
Fast forward a number of years, and I learned Pascal using the wonderful Turbo Pascal compile from Borland, followed shortly after by C++, followed by C (sort of an atypical learning order for most). I was in a community college, and took C++ as a self-study course, which I dove into with relish. Again, I more or less taught myself.
At university, I learned a bit of SML, which I didn't really care for, probably because it was so different than what I was used to, and so a bit harder to pick up. Worse, it had a nearly non-existent library at the time, making the most trivial of problems extremely difficult to solve. Writing a recursive function to loop over something still seems insanely overly-complicated to this day, more suited as an academic exercise than what you'd use in a real production environment.
As a videogame programmer, I mostly stuck with C++ for quite a few years, but eventually also learned Lua for scripting, C# for tools, and Python I learned just in the last year for my contract work, a language I enjoy very much.
It feels like this is intended to spark some sort of frothing outrage, but it doesn't sound all that unreasonable: So... the free business OneDrive and Skype service that came with their product ends when mainstream support for that product also ends three years from now? Yeah, well... okay? Pony up and pay for a service to store your documents online somewhere. It's really not all that expensive. And generally speaking, it's stupid to count on a "free" cloud service lasting forever. Hell, even *paid* services will disappear if they're not profitable enough.
It certainly doesn't affect me with my single license of Office. I don't even use OneDrive features, preferring to use AWS for backups, since they only charge you for the storage you actually use. Last month I paid 10 cents. S3 is stupidly cheap for storing documents and source code backups, since that takes up very little space.
"The Cloud" is overhyped beyond belief these days, but it really does have a place for specific tasks.
For instance: backups and offline storage. Yes, make a local backup, but you need offsite as well. It's just *stupid* not to use a service like Amazon S3 or Glacier for this. Of if you need a turn-key solution for a bit more, Carbonite, etc.
Scalable loads is another one. You can rent HUGE numbers of CPUs to crunch all sorts of data, or push all sorts of traffic to load-test systems. Owning all this hardware would be ridiculously cost-prohibitive.
The "cloud" is just another tool for your use. No tool is perfect for everything, but nearly every tool is perfect for something.
Only a few people are saying "scrap the H1B" program. My current programming lead is from Europe, and I'd guess he's here on H1B or something similar, but most of our people are from the US. We're glad to have him, but I don't feel he's necessarily displacing any qualified workers. We've had positions opened for many months, and it's extremely difficult to find qualified people to fill those positions. There are plenty of tech workers in the US, but often you need people with very specific qualifications (no, real ones, not made up shit).
But there's also no doubt that the program needs cleaning up to prevent some of the rampant abuse that's gone on. It's CLEARLY being abused by many corporations looking to save money by "outsourcing" without the downsides of the workers residing in another country.
Smelling some serious Silicon Valley marketing bullshit in here. Damn, the whole summary is a buzzword bingo paradise. Question: what AI *isn't* "headless"? He just means "non-customer facing", right? Don't overload the term in confusing ways.
Am I just grumpy this morning, or is this summary as asinine as it seems to me right now? Not only is this schmuck cranking the AI hype train whistle up to 11, he's not nearly as insightful as he thinks it is. Um, yeah, no kidding that AI (a fancy term for advanced data analysis, mostly) will be useful to businesses, instead of the stupid chat bots now being displayed. And yeah, it seems pretty obvious it's not going to put everyone out of work (at least not in the short term), but will just be another tool people use.
Maybe I'm just getting tired of the over-hyping of AI. Almost makes me miss the 3D printing fad.
48KB RAM + 16KB extended, two floppy disk drives, green monochrome CRT display, and a joystick. It was amazing at the time, at least to me.
My parents bought it for their business, but they never really used it, and it eventually became mine. I learned how to program on that computer using AppleBASIC. I also learned that line numbers suck for programming, and only went to 32767 (one of my bigger projects). I eventually learned why there was such a "strange" limit like that after I learned about binary numbers.
Favorite games: Choplifter, Wizardry, Karateka, Aztek, and a few adventure games I can't remember the names of.
I wonder when Congresscritters will learn to stop talking about the internet? Any time they do, with a rare few exceptions, it simply makes them look profoundly ignorant and/or out-of-touch.
I have no doubt that this Senator never touches the internet himself - not directly at least. It's nice have a room full of government-paid staff member to use the internet for you. I mean, we all have that, right?
It would be funny, but then you're just playing BK's marketing game. There would be headlines AGAIN about Google doing that, which is just giving them more publicity. How many marketing campaigns end up with several Slashdot headlines (along with plenty of other big-name media outlets)?
The worst thing that could have happened to BK is that this story was ignored. They way they figure it, the longer they can keep this in the news, the more successful their marketing campaign is. The faux anger will dissipate in fairly short order, but we're still all thinking about BK's Whoppers in the meantime.
Let's face it. From a marketing perspective, this is a huge success for BK. A relatively small number people were *actually* negatively affected, and I'd bet very few regular BK customers will actually STOP going there as a result. But for a single commercial, a huge number of people are now talking about BK and Whoppers. Even better, some people shift blame to Google for the insecurity of those voice interfaces. It's highly unlikely and negative legal consequences will come from this either.
Whichever sociopathic marketing asshole came up with this ploy is probably getting a big raise this year.
None of those things I listed are *essential* for writing high-quality software. Those are just things that make life easier for the programmer, and help them to avoid mistakes.
Also, the global namespace in JavaScript has certainly been the cause of many bugs, and more than a few security issues as well. Were you designing the language from scratch today, you'd certainly build in support to make it much easier to write code in protected "containers" of sorts, and make it much more difficult to breach those containers accidentally.
Sorry, that was a terrible description. How about "error-prone scope rules"?
I mean that was originally no such thing as block scope for variables, only global and function-based scope. You can use a new keyword to do that now, but that feature as a whole seems error-prone and confusing, and could have been better with properly designed outer-to-inner nested scope from the beginning, like most other languages have.
Thanks for the article submission, and good to hear some positive feedback for a change when the editors do a proper job. Just ignore acerbic bitter-balls that can't find anything better to do with their time than to lash out at strangers on the internet. It's really sort of sad, when you think about it.
A number of newer languages are embracing the idea of protecting the programmer from doing the wrong thing by accident, and I welcome this trend.
Even though I enjoy my occasional work with Python, the other day I accidentally forgot to explicitly reference a specific variable from a returned tuple, the error code I wanted to check against. Python happily let me compare tuple_value != 0 without complaint. While it may be possible to conceive of a situation in which a programmer MIGHT want to compare a tuple against an integer, it seems like 99% of the time, it would be best to throw an error, and force the programmer to do such an operation explicitly, rather than assuming it was intentional. It would have saved me a lot of hassle had this operation not been permitted. So, just one example there.
JavaScript has a lot of similar issues, from what I understand, such as weak scoping rules, global by default, no namespaces, and overly-generous implicit type coersion. All these things seem to work against the programmer, even if they were originally designed as conveniences.
It's really a shame that "what we have" for the web is JavaScript, so it's sort of impossible to work in web and ignore it. In my particular industry, "what we have" is C++. I'm not sure whether I should feel fortunate or not compared to web programmers. C++ has it's own particular nightmare of complexity, but the good news is that with C++, you can protect yourself from stupid mistakes with enough self-discipline, and the language has improved remarkably in the last 6 years.
No... as all market-governed items, HW/SW sensor tek will RACE-TO-THE-BOTTOM vis' robust action & cost. Watch the mis-drive law-suites EXPLODE !
Yes, it's too bad the government insists on being COMPLETELY HANDS-OFF when it comes to the manufacturing and licensing of automobiles, and of course, is paying ABSOLUTELY NO ATTENTION to self-driving cars./sarcasm
If tiny changes cause these "weak AI" algorithms to fail, then they've been trained badly, or else aren't sophisticated enough algorithms at their core. That, or they don't have enough context. For instance, a stop sign should be recognizable almost purely based on the fact that it's a uniquely shaped sign (octagonal) in the US, at least, along with its proximity and relative position to an intersection. An AI looking at a photo has none of this contextual information, and so has a severe disadvantage.
More importantly, no car manufacturer will be relying solely on vision systems to make navigation systems, which is a huge advantage they'll have over human drivers. Suggesting otherwise seems disingenuous at best on the part of these "computer academics" quoted in the summary. These vehicles will be relying on a *range* of sensors to detect what's going on around them, and I'd argue that vision may well be the least important among them.
It's not going to last forever. People will learn not to trust everything they read on the net. They're naturally trained to trust *written* sources that look like print, as they've been more or less authoritative their whole life (newspapers, books, etc). I remember when my family first got on e-mail, and it took a few years for them to stop falling for every e-mail hoax in existence (it took more than a few carefully worded replies with links to Snopes). I think the same thing will happen with fake news online. People get burned enough by it, and they'll get more jaded, and learn to stop trusting every website just because it looks slick and "official". Of course, there will always be a few that never learn, but that's just about true with anything.
European authorities have also pressured Facebook and Twitter to remove extremist propaganda or other postings that violate European hate speech or other laws.
This part sounds most troublesome to me. I feel it's best to let everyone fight it out in the open, without the government appearing to take sides, because any political opposition could easily be characterized as "hate speech". Of course, that's an American perspective. I might have a different opinion with a history involving "hate speech" that led to a fanatical army running rampant over my country and causing a holocaust.
As a professional videogame programmer, I can assure you that I haven't heard functional programming discussed much at work or among other peers in the industry. Videogames are giant, data-intense state machines, with lots and lots of state to track and manage. My feeling is that it's really not a great fit for functional programming. Traditional object-oriented programming is *heavily* used (C++ is the defacto industry standard language), because that's a reasonable and proven way to encapsulate complex, independently-operating entities into well-behaved packages of data + code.
It's the same reason that the industry doesn't extensively use unit testing for engines and game code (not broadly at least), which may surprise some programmers in other fields. The reason is simple: many game engine tasks can't be boiled down into simple algorithmic data transformations that can be checked and verified by a simple function. For instance, how would one write a unit test to ensure audio is playing correctly, or a graphic shader is working as intended, or a physics engine "looks" correct in realtime interactions? It's not really practical. Thus, videogames tend to rely on integration tests using QA team members to spot anomalies.
In short, not every programming paradigm can be effectively applied to every problem. That's not to say you *couldn't* write a game purely in a functional language, of course. I just don't think you'd be working to FP strengths.
Probably true, but even as someone who is likely your political polar opposite, I've always found your arguments to be consistent and well thought-out, even if I don't necessarily agree with all your positions or conclusions. For some reason, I think it's easier to remember a single negative moderation or hateful comment rather than a dozen encouraging responses or positive mods.
Unfortunately, many people use the relative anonymity as an excuse for venting their own frustration, intentionally lashing out at others with caustic remarks or outright trolling. I've found that viewing such people with pity rather than frustration helps alleviate the frustration of dealing with rude people. What sort of person feels the need to lash out at others online? It's sort of pitiable, and I tend to think "how crappy is your life that online trolling is how you choose to interact with others?"
I'm not sure there's any solution, other than ignoring the trolls and trying to set a good example yourself.
Few "in the OOP world" (whatever that means) promotes inheritance as the end-all-be-all these days. I think that went out of style fifteen or twenty years ago. The notion of eschewing inheritance whenever possible has its own Wikipedia entry, and was described in detail in the famous "Design Patterns" gang of four book.
That being said, there's a time when reality can intrude on "theoretically" clean designs or programming paradigms. Functional programming and unit testing are things you don't see widely used in the videogame development world, at least that I've seen. Not all paradigms and patterns apply to all types of problems. Ultimately, I think that's the most valuable thing I've learned over time. Use the tools and techniques most appropriate to the problem at hand you're trying to solve. Religious wars over programming techniques and methodologies are for pedantic fools.
I agree with you about the cleanliness of Pascal. But just FYI the current MacOS (OSX) is mostly written in C, assembly, and Objective-C, since its based off BSD. You're probably thinking of the original Mac OS, but from what I understand, it's not *quite* correct that it was Pascal either. Instead, they hand-translated some existing Pascal routines from the Apple Lisa into assembly to save on memory. So, it sounds like it was the Apple Lisa that largely used Pascal.
Also, it's wildly incorrect to say there were "no exploits". All modern operating systems have had LOTS of exploits over the years, because very early on, security wasn't even considered. Probably not quite as many as Windows, but certainly not zero.
Pfft. Like I'm one to talk. I make my living writing C++.
Same for me initially: my first language was AppleBASIC, which I taught myself thanks to a wonderful book that almost seemed written for kids (which I was at the time). I spent endless evenings at my parent's workplace using that computer, and eventually it became mine, since I was the only one really using it. Glorious days!!!
Fast forward a number of years, and I learned Pascal using the wonderful Turbo Pascal compile from Borland, followed shortly after by C++, followed by C (sort of an atypical learning order for most). I was in a community college, and took C++ as a self-study course, which I dove into with relish. Again, I more or less taught myself.
At university, I learned a bit of SML, which I didn't really care for, probably because it was so different than what I was used to, and so a bit harder to pick up. Worse, it had a nearly non-existent library at the time, making the most trivial of problems extremely difficult to solve. Writing a recursive function to loop over something still seems insanely overly-complicated to this day, more suited as an academic exercise than what you'd use in a real production environment.
As a videogame programmer, I mostly stuck with C++ for quite a few years, but eventually also learned Lua for scripting, C# for tools, and Python I learned just in the last year for my contract work, a language I enjoy very much.
It feels like this is intended to spark some sort of frothing outrage, but it doesn't sound all that unreasonable: So... the free business OneDrive and Skype service that came with their product ends when mainstream support for that product also ends three years from now? Yeah, well... okay? Pony up and pay for a service to store your documents online somewhere. It's really not all that expensive. And generally speaking, it's stupid to count on a "free" cloud service lasting forever. Hell, even *paid* services will disappear if they're not profitable enough.
It certainly doesn't affect me with my single license of Office. I don't even use OneDrive features, preferring to use AWS for backups, since they only charge you for the storage you actually use. Last month I paid 10 cents. S3 is stupidly cheap for storing documents and source code backups, since that takes up very little space.
Love your response to the blather about Code of Ethics and Professional Conduct, which was veiled attempt to get you to shut the hell up and go away.
"Your social justice imperative has been noted."
"The Cloud" is overhyped beyond belief these days, but it really does have a place for specific tasks.
For instance: backups and offline storage. Yes, make a local backup, but you need offsite as well. It's just *stupid* not to use a service like Amazon S3 or Glacier for this. Of if you need a turn-key solution for a bit more, Carbonite, etc.
Scalable loads is another one. You can rent HUGE numbers of CPUs to crunch all sorts of data, or push all sorts of traffic to load-test systems. Owning all this hardware would be ridiculously cost-prohibitive.
The "cloud" is just another tool for your use. No tool is perfect for everything, but nearly every tool is perfect for something.
Only a few people are saying "scrap the H1B" program. My current programming lead is from Europe, and I'd guess he's here on H1B or something similar, but most of our people are from the US. We're glad to have him, but I don't feel he's necessarily displacing any qualified workers. We've had positions opened for many months, and it's extremely difficult to find qualified people to fill those positions. There are plenty of tech workers in the US, but often you need people with very specific qualifications (no, real ones, not made up shit).
But there's also no doubt that the program needs cleaning up to prevent some of the rampant abuse that's gone on. It's CLEARLY being abused by many corporations looking to save money by "outsourcing" without the downsides of the workers residing in another country.
Smelling some serious Silicon Valley marketing bullshit in here. Damn, the whole summary is a buzzword bingo paradise. Question: what AI *isn't* "headless"? He just means "non-customer facing", right? Don't overload the term in confusing ways.
Am I just grumpy this morning, or is this summary as asinine as it seems to me right now? Not only is this schmuck cranking the AI hype train whistle up to 11, he's not nearly as insightful as he thinks it is. Um, yeah, no kidding that AI (a fancy term for advanced data analysis, mostly) will be useful to businesses, instead of the stupid chat bots now being displayed. And yeah, it seems pretty obvious it's not going to put everyone out of work (at least not in the short term), but will just be another tool people use.
Maybe I'm just getting tired of the over-hyping of AI. Almost makes me miss the 3D printing fad.
48KB RAM + 16KB extended, two floppy disk drives, green monochrome CRT display, and a joystick. It was amazing at the time, at least to me.
My parents bought it for their business, but they never really used it, and it eventually became mine. I learned how to program on that computer using AppleBASIC. I also learned that line numbers suck for programming, and only went to 32767 (one of my bigger projects). I eventually learned why there was such a "strange" limit like that after I learned about binary numbers.
Favorite games: Choplifter, Wizardry, Karateka, Aztek, and a few adventure games I can't remember the names of.
I wonder when Congresscritters will learn to stop talking about the internet? Any time they do, with a rare few exceptions, it simply makes them look profoundly ignorant and/or out-of-touch.
I have no doubt that this Senator never touches the internet himself - not directly at least. It's nice have a room full of government-paid staff member to use the internet for you. I mean, we all have that, right?
It would be funny, but then you're just playing BK's marketing game. There would be headlines AGAIN about Google doing that, which is just giving them more publicity. How many marketing campaigns end up with several Slashdot headlines (along with plenty of other big-name media outlets)?
The worst thing that could have happened to BK is that this story was ignored. They way they figure it, the longer they can keep this in the news, the more successful their marketing campaign is. The faux anger will dissipate in fairly short order, but we're still all thinking about BK's Whoppers in the meantime.
Let's face it. From a marketing perspective, this is a huge success for BK. A relatively small number people were *actually* negatively affected, and I'd bet very few regular BK customers will actually STOP going there as a result. But for a single commercial, a huge number of people are now talking about BK and Whoppers. Even better, some people shift blame to Google for the insecurity of those voice interfaces. It's highly unlikely and negative legal consequences will come from this either.
Whichever sociopathic marketing asshole came up with this ploy is probably getting a big raise this year.
So... one might call it an unmatched level of sarcasm?
None of those things I listed are *essential* for writing high-quality software. Those are just things that make life easier for the programmer, and help them to avoid mistakes.
Also, the global namespace in JavaScript has certainly been the cause of many bugs, and more than a few security issues as well. Were you designing the language from scratch today, you'd certainly build in support to make it much easier to write code in protected "containers" of sorts, and make it much more difficult to breach those containers accidentally.
Sorry, that was a terrible description. How about "error-prone scope rules"?
I mean that was originally no such thing as block scope for variables, only global and function-based scope. You can use a new keyword to do that now, but that feature as a whole seems error-prone and confusing, and could have been better with properly designed outer-to-inner nested scope from the beginning, like most other languages have.
Thanks for the article submission, and good to hear some positive feedback for a change when the editors do a proper job. Just ignore acerbic bitter-balls that can't find anything better to do with their time than to lash out at strangers on the internet. It's really sort of sad, when you think about it.
I've found that management fads are typically only as bad as the managers who impose them on their employees.
A number of newer languages are embracing the idea of protecting the programmer from doing the wrong thing by accident, and I welcome this trend.
Even though I enjoy my occasional work with Python, the other day I accidentally forgot to explicitly reference a specific variable from a returned tuple, the error code I wanted to check against. Python happily let me compare tuple_value != 0 without complaint. While it may be possible to conceive of a situation in which a programmer MIGHT want to compare a tuple against an integer, it seems like 99% of the time, it would be best to throw an error, and force the programmer to do such an operation explicitly, rather than assuming it was intentional. It would have saved me a lot of hassle had this operation not been permitted. So, just one example there.
JavaScript has a lot of similar issues, from what I understand, such as weak scoping rules, global by default, no namespaces, and overly-generous implicit type coersion. All these things seem to work against the programmer, even if they were originally designed as conveniences.
It's really a shame that "what we have" for the web is JavaScript, so it's sort of impossible to work in web and ignore it. In my particular industry, "what we have" is C++. I'm not sure whether I should feel fortunate or not compared to web programmers. C++ has it's own particular nightmare of complexity, but the good news is that with C++, you can protect yourself from stupid mistakes with enough self-discipline, and the language has improved remarkably in the last 6 years.
No ... as all market-governed items, HW/SW sensor tek will RACE-TO-THE-BOTTOM vis' robust action & cost. Watch the mis-drive law-suites EXPLODE !
Yes, it's too bad the government insists on being COMPLETELY HANDS-OFF when it comes to the manufacturing and licensing of automobiles, and of course, is paying ABSOLUTELY NO ATTENTION to self-driving cars. /sarcasm
If tiny changes cause these "weak AI" algorithms to fail, then they've been trained badly, or else aren't sophisticated enough algorithms at their core. That, or they don't have enough context. For instance, a stop sign should be recognizable almost purely based on the fact that it's a uniquely shaped sign (octagonal) in the US, at least, along with its proximity and relative position to an intersection. An AI looking at a photo has none of this contextual information, and so has a severe disadvantage.
More importantly, no car manufacturer will be relying solely on vision systems to make navigation systems, which is a huge advantage they'll have over human drivers. Suggesting otherwise seems disingenuous at best on the part of these "computer academics" quoted in the summary. These vehicles will be relying on a *range* of sensors to detect what's going on around them, and I'd argue that vision may well be the least important among them.
It's not going to last forever. People will learn not to trust everything they read on the net. They're naturally trained to trust *written* sources that look like print, as they've been more or less authoritative their whole life (newspapers, books, etc). I remember when my family first got on e-mail, and it took a few years for them to stop falling for every e-mail hoax in existence (it took more than a few carefully worded replies with links to Snopes). I think the same thing will happen with fake news online. People get burned enough by it, and they'll get more jaded, and learn to stop trusting every website just because it looks slick and "official". Of course, there will always be a few that never learn, but that's just about true with anything.
European authorities have also pressured Facebook and Twitter to remove extremist propaganda or other postings that violate European hate speech or other laws.
This part sounds most troublesome to me. I feel it's best to let everyone fight it out in the open, without the government appearing to take sides, because any political opposition could easily be characterized as "hate speech". Of course, that's an American perspective. I might have a different opinion with a history involving "hate speech" that led to a fanatical army running rampant over my country and causing a holocaust.
If you removes emotion and look at the issue from a reasonable and logical point of view
Well, there's your problem...