Styles of Programming

Sdílet
Vložit

Komentáře • 75

  • @jeremydalcin8797
    @jeremydalcin8797 Před 7 lety

    You are amazing! I have been trying to understand how all these paradigms are connected for ages. You just explained it in 10 minutes. This should be required viewing.

    • @NERDfirst
      @NERDfirst  Před 7 lety +2

      Hello and thank you very much for your comment! It certainly would be good for this terminology to be at least made clear at some point of time or another, wouldn't it? I guess you _can_ get away with not knowing it, but it always hurts a little inside when people say things like "HTML isn't a _real_ programming language".

    • @jeremydalcin8797
      @jeremydalcin8797 Před 7 lety

      Haha I know!

  • @codelume
    @codelume Před 8 lety

    thanks, you do have great ability to explain well, actually i have a class on programming paradigm(master in computer science) and unit now we did 9 hours in class, and i did understand more ( a lot more )in this 10 minutes video than 10 hours. thanks you're awesome, glad to subscribe

    • @NERDfirst
      @NERDfirst  Před 8 lety

      +Moustapha Mohamed Lemine Hello and thank you very much for your comment! Very happy to be of help, and thank you for the subscription! Hope to see you in the comments section of videos to come =)

  • @PcnoicFxman
    @PcnoicFxman Před 7 lety

    Top notch information on a nice graphical presentation! Thanks man and keep the vids rollin'.

    • @NERDfirst
      @NERDfirst  Před 7 lety

      Thank you very much! Very happy to know you've found my work useful =)

  • @Shadow4707
    @Shadow4707 Před 8 lety

    I would say that C++ actually places no emphasis whatsoever on anything. That's one of the reasons why Java has been developed after all.
    When I was introduced to functional programming first, I couldn't stand it at all, but now that I've done some mathematical problems, I think it's really great. The only problem I have is that I am not good enough at it to write efficient algorithms for some problems.

    • @NERDfirst
      @NERDfirst  Před 8 lety

      +Shadow4707 Hmm yeah, I shouldn't have said C++ places emphasis on OOP. OOP is the big improvement in C++ compared to C, but it is not emphasized like Java does.
      And yeah, functional programming does take some getting used to, doesn't it? It's one of the things I'm trying to pick up in my spare time as well.

  • @mamazu1995
    @mamazu1995 Před 8 lety

    Great video. I have heard of the differentiation between different types of programming languages as well and of course, this affects how your code looks.
    But the worst thing is if a program was written one way and continued in another. This is something that you can still see in PHP. It was developed back in the days with imperative programming they are introducing the mysql_i object.
    The fact, that most people are just familiar with imperative programming is probably because of the reason that this fits more into the definition of a programming language. To be honest, I don't call SQL or HTML a programming language either. This would be more of a question for "high level" vs. "low level" language.

    • @NERDfirst
      @NERDfirst  Před 8 lety +1

      +Max mamazu Hello and thank you for your comment! I guess this is why some programming languages have to throw out a large part of their API over time.
      Regarding your point on HTML/SQL, this comes down to what we intuitively feel "is" and "is not" programming. Strictly speaking, programming is just "giving a computer instructions to do a task", so SQL and HTML do indeed fit the bill. These languages just don't "feel" like programming languages because we are so used to doing things imperatively, and something that is not imperative feels foreign.

  • @rohitr6722
    @rohitr6722 Před 2 lety

    I love the video .... very simple explanation ...

    • @NERDfirst
      @NERDfirst  Před 2 lety

      Hello and thank you for your comment! Very happy to be of help =)

  • @DT-yl9nx
    @DT-yl9nx Před 8 lety

    Thank you so much for making all these videos!! You explain really well and easy to understand. Just wonder whether you have interest in doing some videos to explain design patterns. :D

    • @NERDfirst
      @NERDfirst  Před 8 lety +1

      Hello and thank you very much for your comment! Design patterns is a good idea, I'll put that on the list!

  • @FriedrichKromberg
    @FriedrichKromberg Před 7 lety

    Very nice!!

    • @NERDfirst
      @NERDfirst  Před 7 lety

      Thank you! Glad you liked the video =)

  • @chronophagocytosis
    @chronophagocytosis Před 6 lety

    Either I'm just not very experienced or R just happens to be hard to confine in a clearly defined box. When watching this video I constantly felt that R fits the description. It's a fairly high level function language, so you don't really need to worry about the low level stuff C programmers have to deal with. But beyond that though, it seems to have features of every classification you just mentioned. You can write your programs without loops, but if you want to, you can make all sorts of conditional structures. When drawing plots, you describe the outcome and the R programming environment does its magic in the background and displays the graph you requested. This includes stuff like point styles, axis labels, colors, font sizes etc. So what do you think? Is R clearly in one category or does it spill all over the place?
    Oh, and then there's also visual progarmming like LabVIEW. I'ts just so different from C, R, html, and Basic I struggle to even call it programming.

    • @NERDfirst
      @NERDfirst  Před 6 lety

      Hello and thank you for your comment! Do bear in mind that programming languages can fall into multiple categories! In fact, some that I've mentioned in the video are subsets of each other.
      I haven't used R before, but from what little I know about it, I'd definitely consider it a high level language, more or less at the same level as python. Wikipedia also describes it as imperative, functional and procedural.
      Graphical programming languages can still take on properties of common programming languages. Again, I haven't used Labview, but things like Scratch or Blockly for example follow the very typical procedural / imperative kind of structure.

  • @zhina473
    @zhina473 Před 6 lety

    Tnks alot alot alot. Excellent

    • @NERDfirst
      @NERDfirst  Před 6 lety

      You're welcome! Very happy to be of help =)

  • @kartikjagdale
    @kartikjagdale Před 8 lety

    hahahhaha I didn't knew loops were syntactic sugar.... good info keep it up...

    • @NERDfirst
      @NERDfirst  Před 8 lety +2

      Hello and thank you very much for your comment! Really if you think about it, _all_ of programming is syntactic sugar for machine code =P

  • @Shortninja66
    @Shortninja66 Před 8 lety

    Why is imperative programming said to be the most used when there are more people that use Java (procedural programming)? If we ignored that language is based off of imperative programming, the most used would be procedural, right?

    • @NERDfirst
      @NERDfirst  Před 8 lety +3

      +Shortninja66 Hello and thank you for your comment! When I said that imperative programming languages are the most common it _is_ indeed because I am counting the fact that many of the styles are imperative. I don't know how easy it is to categorize things if we want to ignore this relationship.
      Using your example, Java would not only be a procedural language. It fits the all the following definitions: Imperative, structured, procedural, _and_ object-oriented. If we choose to pick the "tightest fitting" definition, then Java would be object-oriented instead, but categorizing things this way feels less descriptive.
      The reason why I said imperative programming is the most used, because imperative programming (including languages that are imperative _and_ meet some of the other definitions) form the vast majority of programming languages out there. C, C++, Java, Python, PHP and JavaScript are all examples of this, so really this goes beyond just Java.

    • @Shortninja66
      @Shortninja66 Před 8 lety

      lcc0612 I understand your answer and that is what I thought before, but the end-user never sees any sort of imperative programming on their end; only the highest style in the hierarchy for their current language (users programming in Java see OOP and not imperative). I understand why we classify all of these together, but the higher styles only do the imperative style during compilation and at runtime, correct?

    • @NERDfirst
      @NERDfirst  Před 8 lety

      +Shortninja66 Hmmm... I don't think it's right to say that a user only sees the "highest" style. For example, all "imperative" means is that you are telling your computer what to do, step by step. And that's still clearly visible regardless if you use C or Java or Python, and regardless of whether you choose to use loops or procedures or OOP.

    • @Shortninja66
      @Shortninja66 Před 8 lety +1

      lcc0612 Okay, so it is more accurate to just say that each style is just an addition to imperative programming and not a completely new style that is just based off of imperative? Thanks for correcting my misunderstanding mate

    • @NERDfirst
      @NERDfirst  Před 8 lety +3

      +Shortninja66 Yes that is correct. Ah, maybe I didn't make this very clear in the video - But yes, when I say a style is built on top of an older style, what I'm saying is that, everything about the older style still holds true, _but_ there are some additional features available in the newer style. So basically a procedural programming language is also imperative in nature.
      I made this venn diagram thing that had the various related styles nested inside each other, but that didn't make it into the video. Otherwise it would've made things a lot clearer =)

  • @SevenDeMagnus
    @SevenDeMagnus Před 6 lety

    Hi sir (what's your name, if it's ok to ask?). I highly recommend Swift, XCode and the Mac. It's a beautiful program, has beautiful syntax as simple to read as Python, Javascript or Lua or but is more powerful probably more powerful than C++ or Java (coz' Apple is diligent with the providing the libraries and frameworks). Also it's great for protocol and functional programming (the one that trumping object oriented programming) - makes you avoid nesting.
    I recommend Bob the Developer and Ray Wenderlich to learn the foundations fast (they're more analgous, metaphoric with their examples) on top of the Apple iBook and API references. God bless, Proverbs 31

    • @NERDfirst
      @NERDfirst  Před 6 lety +1

      Hello again! I don't actively release my name. I'm generally known as "0612".
      Personally I did not mention swift as I have not used it before. Since it is platform locked, and I am a Windows user, it's something I have no opportunity to try (except in the case of the unofficial port).
      To be honest I've always felt somewhat uneasy with the whole "apple ecosystem" concept. Personally I would be rather wary of recommending a beginner to use a language that causes them to be locked to a particular software and hardware platform.
      Nothing against existing users of course! If you like it I have no right to say otherwise. Just offering some reasons as to why I wouldn't explicitly recommend it.

  • @maingimoveyourteleporter

    As someone who doesn't exactly enjoy programming, I have to say I would rather have that simple "plain english" syntax of the low level language than trying to work out classes T_T
    What is... the nature of this, exactly? The description would seem to imply it is a different way to write code, but you use other languages in your examples. Are they locked to language or something?

    • @NERDfirst
      @NERDfirst  Před 8 lety

      +main_gi Hello and thank you for your comment!
      Firstly, you probably shouldn't take any of the syntax in the video as particularly useful examples of what the actual syntax looks like. I use what is known as pseudocode, which is only supposed to "give an idea" of what the code is like, but is not actually based off any programming language. Psuedocode tends to be a lot more readable than actual code, but expressing something like a loop using conditional jumping (using actual assembly language) is going to be a lot harder to both read and write, as opposed to using a code block.
      I guess your point about classes makes some sense though - You do have to wrap your head around the idea of classes. It's not particularly hard though - Once you get the hang of it, it can simplify problem solving in many contexts.
      As for your second point - At its simplest, these "styles" are indeed just different ways of writing code. However, they _are_ also locked to language, since the way you write code is highly dependent on the rules set out by the language itself.

    • @maingimoveyourteleporter
      @maingimoveyourteleporter Před 8 lety

      +lcc0612 I figured the first example was pseudocode, but what is baffling to me is that the friendly "imaginary" programming languages don't exist even though it should seem simple. The easy-to-read assembly and a language where all these "styles" are unlocked. I really feel like having a goto in a language that uses braces could be used well.

    • @NERDfirst
      @NERDfirst  Před 8 lety

      +main_gi Nah, it's really not that simple to have a language that mimics plain english. Unless some new form of programming language exists that uses natural language processing to parse user input, it's probably near impossible to have a language be anywhere close to "friendly".
      Honestly I don't think much more can (or should) be done to make existing languages more readable. While it might be more intuitive for a beginner, it rapidly becomes a chore for the more experienced ones who are actually trying to write something, especially on the large scale.

    • @maingimoveyourteleporter
      @maingimoveyourteleporter Před 8 lety

      I don't exactly mean "plain english", I mean converting instructions to sentence-structure things.
      Even really simple things like tool descriptions could go a long way. I don't know why syntax doesn't have a way to be interchangable yet...

    • @NERDfirst
      @NERDfirst  Před 8 lety

      +main_gi What kind of sentence structure are you thinking of? Are you sure it would be good to build a programming language like that instead of using an IDE that would provide the same kind of guidance without burdening the language?
      Like I said, you'll have to consider the issue of the use of a programming language by someone who is experienced and needs to get as much as possible done in the least amount of time. While I agree things like tool descriptions would be useful, these are normally implemented by IDEs instead of as a core part of the language.