Q&A, Polymorphic Procedures

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ก.ย. 2024

ความคิดเห็น • 17

  • @wmhilton-old
    @wmhilton-old 9 ปีที่แล้ว +4

    Just wow! I reaaally want to try using this language now. It looks like it makes programming fun again! The #modify example that modified the return type to always be at least 32 bits figuratively BLEW MY MIND. That's just awesome. That's an awesomely powerful typing system.

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

    I'm loving this language already. The way you handle meta-programming actually covers all the points for why Golang doesn't support it!
    I hear you are wanting to make a new text editor rather than using Emacs (I don't blame you for not wanting to use Emacs anymore). Making a text editor isn't that hard. I made a GNU nano clone in an afternoon (no search nor copy and paste) so making an editor better than emacs wouldn't take that long (a few weeks). However, I would suggest trying another text editor out first such as Sublime Text or Lime Text (open source clone of Sublime Text).
    Lime is nearly done, the backend at least, but the frontend needs work. The frontend however can be whatever you need it to be: GUI, TUI, Web Browser, etc.

    • @HiAdrian
      @HiAdrian 9 ปีที่แล้ว

      Ginger Games Limetext looks promising, I'll keep an eye on it. Will/does it have C++ awareness, e.g. auto-hinting for classes from included namespaces?

    • @GingerGames
      @GingerGames 9 ปีที่แล้ว

      Adrian It does with a plugin. Because it is meant to be backwards compatible with Sublime Text, you could use a plugin such as SublimeClang or ClangComplete. However, I've not found any plugin that works well on Windows yet. When LimeText is ready enough to use, I will probably design my own plugin based around Clang Static Analyzer to do what I need.

    • @HiAdrian
      @HiAdrian 9 ปีที่แล้ว

      Ginger Games
      I see, thanks for the information!

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

      Ginger Games I think SublimeText in it's current state is pretty nice. Using it with the GoSublime plugin makes the editor almost feel like an IDE. And I think the same is true when writing C# in SublimeText using OmniSharp (which provides code completion and the like). Indeed extending an existing editor for this new language might be the most productive approach, seeing what is possible with SublimeText.
      - github.com/DisposaBoy/GoSublime
      - www.omnisharp.net

    • @GingerGames
      @GingerGames 9 ปีที่แล้ว

      Wolftrail Sublime Text is brilliant and it's my favourite text editor ever! GoSublime is amazing for developing Go and SublimeClang/ClangComplete is amazing for C++ development. I think Lime Text has potential as it is open source and because of that, more people can work on it and the thus the development process may be quicker. Sublime only has one developer at the moment and because of that, updates are not that often nor that big.

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

    Just a few random ideas for improving your language:
    Instead of int (which does not say how many bits it is) maybe use names like these:
    // basic integers of various bit sizes
    i1
    i2
    i4
    i8
    i16
    i32
    i64
    i128
    // unsigned variants
    ui1
    ui2
    ui4
    ui8
    ui16
    ui32
    ui64
    ui128
    // floats of varying bit length
    f16
    f32
    f64
    f80
    f128
    Function declaration can be simplified further by going:
    my_func (param1 ui32, param2 ui32
    param3) : // here no comma, newline (mixing styles for the sake of argument)
    return_val1 ui32
    return_val2 ui32, return_val3 ui32 // here comma instead of newline is the same
    [ optional scoping stuff]
    {
    ...
    return {1, 2, 3}
    }
    because the "type" of the function has to include its parameters and return values to be compatible with another function, right?
    Note the required space between "my_func" and the first "("
    - Make use of newline more. Ditch semicolons altogether IMO, one statement per line! Semicolons allow for multiple statements on the same line (if and its positive result is the worst case, you are making this mistake in this example as we all do) which means getting such code ready for debugging adds tons of friction.
    - An advantage with this...
    my_func (
    param1 ui32 // ...is that you can document
    param2 ui32 // your code like javadoc/phpdoc/doxygen
    param3 // without requiring a whole language for _that_
    ) :
    return_val1 ui32 // more documentation here
    return_val2 ui32 // more doc here
    return_val3 ui32 // etc
    {
    }
    I have more, but enough for now :)

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

    I am really looking forward to use this!

  • @shavais33
    @shavais33 4 ปีที่แล้ว

    re: Compiling to a parse tree, shipping that, and then compiling to binary on the target host (to facilitate interaction with platform-specific libraries, etc).
    Carry that all the way to the end user's computer (the person playing the game) (since, gosh, they might have a different cpu arch, for example), wait until run time to do the compiling, embed the compiler so you can compile and run at run time if you need to, and voila, you have MSIL. One difference maybe being that you're not garbage collecting.
    My two big issues with MSIL are 1. just in time compilation and 2. garbage collection. I've always wanted a language that would compile to optimized native binary code (not MSIL) on the target machine at install/update time. So whatever the target host's cpu arch is, whatever their chipset is, whatever mmx or other local hardware they do or don't have that could or should impact what relatively thoroughly optimized binary code would look like on that host, the compiler can optimize the local native installation taking things like that into account. The program could contain a front loader written in 836 code that would detect changes to the hardware (vs when it was originally installed) and recompile everything if necessary.

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

    > 37:00 What I'm going to do is write my own text editor to replace Emacs and it will use this language as the extension language instead of Emacs Lisp […] My priority in the nearer future is just an editor.
    Is this still on the roadmap?

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

    12:23 "There's gotta be a site that lets you watch TH-cam videos at 1.5 speed"
    Yes there is, it's called TH-cam. (You might need to have it using the HTML5 player though).

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

      before natively supported you could also use video speed controller extension

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

    I hope we can develop an IDE/Text editor for this language WITH this language... I don't know why but that would just feel right IMO...
    I would like to see a lot of powerful dynamic real time visual stats generation as you are developing out code... i.e. a window showing either global or local branching tree and coverage, error messages from the compile time report overlaid on the end of the line where the error is happening. Profiling stats overlaid next to code lines, (www.softwareverify.com/cpp-profiler.php , www.codeproject.com/Articles/144643/Profiling-of-C-Applications-in-Visual-Studio-for-F), function/struct reference counts. Overlays can be toggle on an off for simplicity sake...

  • @linkVIII
    @linkVIII 8 ปีที่แล้ว

    Yes, I'm watching at 1.5 speed. (right click twice to pull up html5 menu (or you could use vlc))

  • @claytonstangeland
    @claytonstangeland 5 ปีที่แล้ว

    iostream > operators were Bjarne's idea (www.stroustrup.com/01chinese.html). Bad sign for C++ as a whole if that is a feature you don't like :)

  • @Kavukamari
    @Kavukamari 7 ปีที่แล้ว

    personally i think semicolons are aight