MDE under the Hood (Model Driven Engineering) - Computerphile

  Рет қаралды 38,494

Computerphile

Computerphile

Жыл бұрын

How does Model Driven Engineering work? Dr Steffen Zschaler, Reader in Computer Science at Kings College London takes us through it.
/ computerphile
/ computer_phile
This video was filmed and edited by Sean Riley.
Computer Science at the University of Nottingham: bit.ly/nottscomputer
Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

Пікірлер: 75
@CedricBrun-Obeo
@CedricBrun-Obeo Жыл бұрын
Thank you for sharing this interesting video! It's worth noting that all of the tools demonstrated in the video are open source and available for free use. In particular, Eclipse Sirius can be used to build graphical editors, Xtext can be used to define concrete syntax and grammar, and EcoreTools can be used to visualize or design abstract syntax. These tools are powerful resources for anyone looking to get started with graphical modeling and programming
@RocktracksSC
@RocktracksSC Жыл бұрын
Think it. Dream it. Do it.
@Double_Vision
@Double_Vision Жыл бұрын
Thought this was a behind-the-scenes of Million Dollar Extreme.
@BigBrolls
@BigBrolls Жыл бұрын
MDE never dies.
@minihjalte
@minihjalte Жыл бұрын
And it pains me
@test4274
@test4274 Жыл бұрын
remember who built this place! remember to pay homage...
@mongrel_97
@mongrel_97 Жыл бұрын
MDE NEVER D-wait wrong channel. and content.
@djghfhghdfghdfg8884
@djghfhghdfghdfg8884 Жыл бұрын
He can't keep getting away with it!
@esepecesito
@esepecesito Жыл бұрын
@@minihjalte Yes... a real Pain!
@Awesomer5696
@Awesomer5696 Жыл бұрын
He can't keep getting away with it
@SFVYachtClub
@SFVYachtClub Жыл бұрын
*cant keep gtetting away wit it*
@danielwinkels4044
@danielwinkels4044 Жыл бұрын
We're using a BPM Tool which has it's own process model and a rather limited editor for this. Our problem was, that we needed to create many process models with with features that take much time to develop because of the limitations of the provided tool, that we ended up with this solution: We created our own process model with all the information and abstraction we need and then generated the files for our BPM Tool. This even has the benefit that we now can change the BPM Tool as long as we create a new generator for the ne bpm tool. Our process models are expressed in our own "language".
@SardarNL
@SardarNL Жыл бұрын
MDE never succeeded because of two inherent fallacies: 1. the expressiveness of the "modelling" language is limited 2. the model tends to aggregate irrelevant detail, making it noisy/unreadable If your modelling language becomes rich, then it will look and read like a "normal" programming language that happens to be translated to some other "normal" programming language for no benefit. If modelling language stays small and limited to represent only domain interaction, then generated code will always be lacking. Programmers will be forced to hand-code (minute) details and inject hand-coded logic into generated code, which is always cumbersome. Especially if you re-generate code with every model change as you are supposed to do. Noisy details needed for code generation (eg. .width(10) given in video) defies the model purpose - act as an easy-to-read media for non-developers. You will be better off generating tests from the model than generating actual code.
@DingoAteMeBaby
@DingoAteMeBaby Жыл бұрын
Thank you. MDE always seemed very academic to me (focussing on taxonomy instead of being goal driven)
@DingoAteMeBaby
@DingoAteMeBaby Жыл бұрын
However, I do see his point that the evolution of new specific languages like Dockerfiles is connected to a commodification of a task with sufficient complexity within that commodified task IE, instantiating virtual machines
@esepecesito
@esepecesito Жыл бұрын
And also, as another comment stated, is much natural, simpler, direct to just write the thing in a programming language, which BTW, has a much better defined semantic!
@SFVYachtClub
@SFVYachtClub Жыл бұрын
hasan piker
@qj0n
@qj0n Жыл бұрын
I'd say MDE was superseded by DSLs in common languages. If you want to make a tool to write many minesweeper-like games, instead of developing your own language, you can create a library for js/java/dotnet or some other popular and flexible language and you achieve the same goal by much lower costs MDE might be acceptable if you want to compile to different languages (like write code which will work with both java and dotnet). But i don't know any such successful MDE solution
@MCRuCr
@MCRuCr Жыл бұрын
The QOI Image format would be a great topic for an upcoming video. Worth mentioning because of its simplicity and novelty !!
@oresteszoupanos
@oresteszoupanos Жыл бұрын
1-page specification! Much easier to talk about than JPEG 😀
@MCRuCr
@MCRuCr Жыл бұрын
@@oresteszoupanos also a neat little coding exercise , thats why there are already dozens of implementations of it
@Spaghetti775
@Spaghetti775 Жыл бұрын
Wouldn't it be easier to replicate the abstractions that you get from the new language, in java itself? Write classes that abstract a cell, its state etc, and then work with that as a normal java library, rather than generate a load of java code as a compilation step?
@ctam79
@ctam79 Жыл бұрын
The end of the video explains this.
@patrolin
@patrolin Жыл бұрын
@@ctam79 not really, he gives examples of DSLs, but not MDE
@user-mj2df5pc4l
@user-mj2df5pc4l Жыл бұрын
theoretically you can parse a fluent api like an «abstract representation», nothing stops you from doing that.
@esepecesito
@esepecesito Жыл бұрын
Absolutely... and you should. This MDE is BS.
@qj0n
@qj0n Жыл бұрын
@@ctam79 not really it doesn't. In java or dotnet there used to be popular graphical tools, which edited some source code for ui design, database structure or workflows. They were superseded by fluent api-based DSLs, because developers wanted to have more control, but it's not true only MDE can do it
@ThomasDaly1488
@ThomasDaly1488 Жыл бұрын
Nice Sam Hyde on computerphile wasn't expecting that.
@NonTwinBrothers
@NonTwinBrothers Жыл бұрын
He's an important thinker, possibly one of the greatest in our generations
@SFVYachtClub
@SFVYachtClub Жыл бұрын
ghoat of kyiv is pogramer :o
@Fanofjambi
@Fanofjambi Жыл бұрын
Teaching African refugees to program with javascript
@n-o-i-d
@n-o-i-d Жыл бұрын
Glad to see quality people that follow both Sam and this channel. We are the cream of the crop 😂
@benjamindragon598
@benjamindragon598 Жыл бұрын
Doesn't even look like him
@shitpostsandor6688
@shitpostsandor6688 Жыл бұрын
MDE never dies, WORLD PEACE 2 *COMING SOON*
@MaximumUtmost
@MaximumUtmost Жыл бұрын
Million Dollar Extreme
@TheOriginalJohnDoe
@TheOriginalJohnDoe Жыл бұрын
Can Dr. Mike Pound do a video soon about ChatGPT? That’d be awesome!
@gidi1899
@gidi1899 Жыл бұрын
Hi, nice lecture, I have a question that is maybe off topic, coming from my intent solve the redundancy problem - I have a lot of code in the Language or Library that I don't need. Also helps to secure the system. The question is: Do you think code that is not relevant to any intent of the current user, should exist in RAM or in the HD? And shouldn't any code package come with an "intent tree", such that the user can select how he/she intend on using the package by selecting intention within the tree - that then will be the only ones to unpack/copy/..
@j7ndominica051
@j7ndominica051 Жыл бұрын
I don't understand any of this. But it's clear that we'll need a 64-bit computer to run Minesweeper with all the flowcharts.
@L4rsTrysToMakeTut
@L4rsTrysToMakeTut Жыл бұрын
Have you tried Julia and it's metaprogramming to create DSLs/MFEs?
@scriptbot806
@scriptbot806 Жыл бұрын
MDE has given me a significant head start with many projects. It helps me understand the problem domain and the generated code gives a great base layer for my applications.
@Nors2Ka
@Nors2Ka Жыл бұрын
Was this filmed later after the last video or together at the same time? Cause I'd wish he'd address the issues raised by commenters in the last one.
@megaing1322
@megaing1322 Жыл бұрын
Unless I am missing something, doesn't he do this? He is in fact responding to comments and specific issues being raised (e.g. "just use a library instead").
@Nors2Ka
@Nors2Ka Жыл бұрын
@@megaing1322 He just said "sure there are _alternatives_, everything has pluses and minuses, but here's me talking some more" for only one point, and that is libraries that would abstract some of the need of understanding how computer works. What he doesn't address are the bigger concerns of "is it actually simpler?" and "if you're not a programmer, why pretend to be one with a heavily handicapped language?". He waves it all away as it being "just another tool in the belt to consider, nothing wrong with that" so you couldn't politically correctly tell him that he's talking non-sense.
@megaing1322
@megaing1322 Жыл бұрын
@@Nors2Ka Probably because those are all just opinions. Without having been convinced by him, I would say "yes it's simpler", "not everyone has to be a full blown programmer" and "more tools are always better". Creating DSLs is pretty easy in the modern day and age (as he showed in this video) and they certainly lead to shorter code with less boilerplate than Java could provide otherwise.
@Nors2Ka
@Nors2Ka Жыл бұрын
@@megaing1322 This is just my surface level summary of what was discussed, actual comments had much more grounds than just being opinions. Point is, I kind of expect people to at least address such rather central points before continuing to advertise their own stuff.
@boenrobot
@boenrobot Жыл бұрын
About the "checks at runtime vs static checks" thing with regards to libs... It's worth noting this is only applicable if your lib's language is interpreted, or if it's compiled, but your abstractions are very stateful without sufficient type level checking. In a language like Rust f.e., you can create a new "object" (in Rust terms, "struct") that has the same fields as your old one, but different associated methods, and do so at zero runtime cost (unlike Java and most other languages, where the extra object costs memory, or an extra deallocation+allocation) and therefore, you can do a lot more checks at compile time.
@steffenzschaler348
@steffenzschaler348 Жыл бұрын
Yes, different languages provide different levels of support for internal DSLs. Some are indeed set up to allow you to introduce new linguistic abstractions in a way where additional validations can be done at compile time. However, even for those you keep some limitations because you are tied to what the host-language infrastructure can do. That's not to say you shouldn't work with internal DSLs, just that you need to choose what will work when...
@gabethrg8
@gabethrg8 Жыл бұрын
Million dollar extreme
@PhilBoswell
@PhilBoswell Жыл бұрын
Just to check, is the Class Diagram that appears at 6:00 a UML diagram? I always wanted to get into that but never managed to: the books were enormous and expensive and the software was just expensive. Maybe I was too early…or too lazy ;-)
@MCRuCr
@MCRuCr Жыл бұрын
It is a type of UML Diagram
@PhilBoswell
@PhilBoswell Жыл бұрын
@@MCRuCr thanks, it's been years so I was hoping I'd recognised it correctly
@forgefeu81
@forgefeu81 Жыл бұрын
It's an Encore Diagram. Encore is a language that is used to create other language such as UML.
@MCRuCr
@MCRuCr Жыл бұрын
@@forgefeu81 i dont think that languages „create“ other languages. Why would they?
@steffenzschaler348
@steffenzschaler348 Жыл бұрын
Yes, it's an Ecore diagram. Ecore is a variant of UML class diagrams, specifically used to capture the abstract syntax of modelling languages; that is the concepts and their relationships. As a language, it's much simpler than full UML or, indeed, UML class diagrams.
@RealCyberCrime
@RealCyberCrime Жыл бұрын
model driven engineering might be more popular if driven by supermodels
@marcbotnope1728
@marcbotnope1728 Жыл бұрын
No just say no! This has been tried over and over and over again and it always fail. The blueprint for code is code.
@geodome83
@geodome83 Жыл бұрын
Reminds me of finite state automata
@M0rn1n6St4r
@M0rn1n6St4r Жыл бұрын
*Request* - please publish channel content to Odysee.
@DingoAteMeBaby
@DingoAteMeBaby Жыл бұрын
Domain specific languages appear to have failed over and over again
@MorgenPeschke
@MorgenPeschke Жыл бұрын
Not really, it just feels like it because one of the hallmark of a successful DSL is that it doesn't feel like a DSL. Dockerfiles, Handlebars, Makefiles, Jenkins Pipelines, the build files used by about half the build systems out there, and etc are all DSLs. They just don't really feel like a DSL because they've become so familiar we stop thinking of them as anything other than themselves.
@DingoAteMeBaby
@DingoAteMeBaby Жыл бұрын
@@MorgenPeschke def
@StanislavPozdnyakov
@StanislavPozdnyakov Жыл бұрын
Sounds complicated. I hardly can understand it.
@black_platypus
@black_platypus Жыл бұрын
I never knew Chip Baskets had to trudge through computer science courses before he embarked on his clown journey 😲
@kramer3d
@kramer3d Жыл бұрын
😂
@esepecesito
@esepecesito Жыл бұрын
The whole MDE concept is BS. Is it being used in the industry? YES. Is it successful? More or less. Does it help to improve system in any measurable way? Absolutely NO!
@DannyBelam
@DannyBelam Жыл бұрын
Wow, is it just me, or is this just all bollocks
@hughegentry8255
@hughegentry8255 Жыл бұрын
Python was invented because academics get in the way of writing code easily. It's how they earn their power and consultancy fees.
@thelatestartosrs
@thelatestartosrs Жыл бұрын
that must be why it was invented by academics
@carljung9230
@carljung9230 Жыл бұрын
too wordy and not well organized. zzzzzzzzz.
Reverse Engineering - Computerphile
19:49
Computerphile
Рет қаралды 182 М.
Model Driven Software Engineering - Computerphile
14:12
Computerphile
Рет қаралды 93 М.
ONE MORE SUBSCRIBER FOR 6 MILLION!
00:38
Horror Skunx
Рет қаралды 11 МЛН
ПЕЙ МОЛОКО КАК ФОКУСНИК
00:37
Masomka
Рет қаралды 10 МЛН
Тяжелые будни жены
00:46
К-Media
Рет қаралды 5 МЛН
5 Design Patterns That Are ACTUALLY Used By Developers
9:27
Alex Hyett
Рет қаралды 171 М.
What is a Monad? - Computerphile
21:50
Computerphile
Рет қаралды 590 М.
Test Driven DESIGN - Step by Step
25:46
Continuous Delivery
Рет қаралды 19 М.
Horrible, Helpful, http3 Hack - Computerphile
20:55
Computerphile
Рет қаралды 80 М.
Event-Driven Architecture: Explained in 7 Minutes!
7:18
Alex Hyett
Рет қаралды 78 М.
Glitch Tokens - Computerphile
19:29
Computerphile
Рет қаралды 312 М.
Mapping GPT revealed something strange...
1:09:14
Machine Learning Street Talk
Рет қаралды 114 М.
Vectoring Words (Word Embeddings) - Computerphile
16:56
Computerphile
Рет қаралды 277 М.
ONE MORE SUBSCRIBER FOR 6 MILLION!
00:38
Horror Skunx
Рет қаралды 11 МЛН