MDE under the Hood (Model Driven Engineering) - Computerphile

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2022
  • 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 ปีที่แล้ว +16

    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 ปีที่แล้ว +15

    Think it. Dream it. Do it.

  • @BigBrolls
    @BigBrolls ปีที่แล้ว +84

    MDE never dies.

    • @minihjalte
      @minihjalte ปีที่แล้ว +20

      And it pains me

    • @test4274
      @test4274 ปีที่แล้ว +3

      remember who built this place! remember to pay homage...

    • @mongrel_97
      @mongrel_97 ปีที่แล้ว +3

      MDE NEVER D-wait wrong channel. and content.

    • @djghfhghdfghdfg8884
      @djghfhghdfghdfg8884 ปีที่แล้ว +8

      He can't keep getting away with it!

    • @esepecesito
      @esepecesito ปีที่แล้ว +1

      @@minihjalte Yes... a real Pain!

  • @Double_Vision
    @Double_Vision ปีที่แล้ว +42

    Thought this was a behind-the-scenes of Million Dollar Extreme.

  • @SFVYachtClub
    @SFVYachtClub ปีที่แล้ว +11

    *cant keep gtetting away wit it*

  • @Awesomer5696
    @Awesomer5696 ปีที่แล้ว +14

    He can't keep getting away with it

  • @MCRuCr
    @MCRuCr ปีที่แล้ว +6

    The QOI Image format would be a great topic for an upcoming video. Worth mentioning because of its simplicity and novelty !!

    • @oresteszoupanos
      @oresteszoupanos ปีที่แล้ว +1

      1-page specification! Much easier to talk about than JPEG 😀

    • @MCRuCr
      @MCRuCr ปีที่แล้ว +1

      @@oresteszoupanos also a neat little coding exercise , thats why there are already dozens of implementations of it

  • @danielwinkels4044
    @danielwinkels4044 ปีที่แล้ว +3

    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".

  • @ThomasDaly1488
    @ThomasDaly1488 ปีที่แล้ว +47

    Nice Sam Hyde on computerphile wasn't expecting that.

    • @NonTwinBrothers
      @NonTwinBrothers ปีที่แล้ว +2

      He's an important thinker, possibly one of the greatest in our generations

    • @SFVYachtClub
      @SFVYachtClub ปีที่แล้ว

      ghoat of kyiv is pogramer :o

    • @Fanofjambi
      @Fanofjambi ปีที่แล้ว +9

      Teaching African refugees to program with javascript

    • @n-o-i-d
      @n-o-i-d ปีที่แล้ว +3

      Glad to see quality people that follow both Sam and this channel. We are the cream of the crop 😂

    • @benjamindragon598
      @benjamindragon598 ปีที่แล้ว +1

      Doesn't even look like him

  • @shitpostsandor6688
    @shitpostsandor6688 ปีที่แล้ว +3

    MDE never dies, WORLD PEACE 2 *COMING SOON*

  • @scriptbot806
    @scriptbot806 ปีที่แล้ว +2

    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.

  • @MaximumUtmost
    @MaximumUtmost ปีที่แล้ว +12

    Million Dollar Extreme

  • @Spaghetti775
    @Spaghetti775 ปีที่แล้ว +26

    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 ปีที่แล้ว +5

      The end of the video explains this.

    • @patrolin
      @patrolin ปีที่แล้ว +1

      @@ctam79 not really, he gives examples of DSLs, but not MDE

    • @user-mj2df5pc4l
      @user-mj2df5pc4l ปีที่แล้ว +1

      theoretically you can parse a fluent api like an «abstract representation», nothing stops you from doing that.

    • @esepecesito
      @esepecesito ปีที่แล้ว +5

      Absolutely... and you should. This MDE is BS.

    • @qj0n
      @qj0n ปีที่แล้ว +1

      @@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

  • @TheOriginalJohnDoe
    @TheOriginalJohnDoe ปีที่แล้ว +4

    Can Dr. Mike Pound do a video soon about ChatGPT? That’d be awesome!

  • @SardarNL
    @SardarNL ปีที่แล้ว +53

    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 ปีที่แล้ว +10

      Thank you. MDE always seemed very academic to me (focussing on taxonomy instead of being goal driven)

    • @DingoAteMeBaby
      @DingoAteMeBaby ปีที่แล้ว +3

      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 ปีที่แล้ว +2

      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 ปีที่แล้ว +3

      hasan piker

    • @qj0n
      @qj0n ปีที่แล้ว +3

      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

  • @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/..

  • @Nors2Ka
    @Nors2Ka ปีที่แล้ว +10

    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 ปีที่แล้ว +3

      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 ปีที่แล้ว +4

      @@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 ปีที่แล้ว +1

      @@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.

  • @L4rsTrysToMakeTut
    @L4rsTrysToMakeTut ปีที่แล้ว +1

    Have you tried Julia and it's metaprogramming to create DSLs/MFEs?

  • @j7ndominica051
    @j7ndominica051 ปีที่แล้ว +3

    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.

  • @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...

  • @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 ปีที่แล้ว +1

      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 ปีที่แล้ว +1

      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.

  • @gabethrg8
    @gabethrg8 ปีที่แล้ว +17

    Million dollar extreme

  • @RealCyberCrime
    @RealCyberCrime ปีที่แล้ว +8

    model driven engineering might be more popular if driven by supermodels

  • @geodome83
    @geodome83 ปีที่แล้ว

    Reminds me of finite state automata

  • @marcbotnope1728
    @marcbotnope1728 ปีที่แล้ว +7

    No just say no! This has been tried over and over and over again and it always fail.
    The blueprint for code is code.

  • @M0rn1n6St4r
    @M0rn1n6St4r ปีที่แล้ว +1

    *Request* - please publish channel content to Odysee.

  • @DingoAteMeBaby
    @DingoAteMeBaby ปีที่แล้ว +7

    Domain specific languages appear to have failed over and over again

    • @MorgenPeschke
      @MorgenPeschke ปีที่แล้ว +8

      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

  • @black_platypus
    @black_platypus ปีที่แล้ว +1

    I never knew Chip Baskets had to trudge through computer science courses before he embarked on his clown journey 😲

  • @StanislavPozdnyakov
    @StanislavPozdnyakov ปีที่แล้ว

    Sounds complicated. I hardly can understand it.

  • @esepecesito
    @esepecesito ปีที่แล้ว +4

    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 ปีที่แล้ว +7

    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 ปีที่แล้ว +3

      that must be why it was invented by academics

  • @carljung9230
    @carljung9230 ปีที่แล้ว

    too wordy and not well organized. zzzzzzzzz.