MDE under the Hood (Model Driven Engineering) - Computerphile

Поделиться
HTML-код
  • Опубликовано: 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.

  • @Double_Vision
    @Double_Vision Год назад +43

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

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

  • @Awesomer5696
    @Awesomer5696 Год назад +15

    He can't keep getting away with it

  • @SFVYachtClub
    @SFVYachtClub Год назад +11

    *cant keep gtetting away wit it*

  • @SardarNL
    @SardarNL Год назад +54

    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

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

  • @MaximumUtmost
    @MaximumUtmost Год назад +12

    Million Dollar Extreme

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

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

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

  • @TheOriginalJohnDoe
    @TheOriginalJohnDoe Год назад +4

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

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

  • @L4rsTrysToMakeTut
    @L4rsTrysToMakeTut Год назад +1

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

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

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

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

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

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

  • @geodome83
    @geodome83 Год назад

    Reminds me of finite state automata

  • @RealCyberCrime
    @RealCyberCrime Год назад +8

    model driven engineering might be more popular if driven by supermodels

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

  • @StanislavPozdnyakov
    @StanislavPozdnyakov Год назад

    Sounds complicated. I hardly can understand it.

  • @black_platypus
    @black_platypus Год назад +1

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

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

  • @carljung9230
    @carljung9230 Год назад

    too wordy and not well organized. zzzzzzzzz.