Apple's Next Big Language

Apple's Next Big Language

In June, 2014, Apple wowed the world with its revelation of the Swift programming language. For years, Mac and iOS developers have speculated about whether and when Apple would create a new language. But for some old timers, Apple has always been creating and adopting new languages. In this talk, Daniel will take you on a historical journey of some of Apple’s more and less well-known pushes to get developers on board with their "big new language."

By Daniel Jalkut: https://red-sweater.com

Powered by http://xebia.com

B94d88549eaca9755b9346a0383b41bb?s=128

do{iOS} conference

November 09, 2015
Tweet

Transcript

  1. 4.

    Language Dylan AppleScript EnglishNederlands Italiano Español Deutsche Svenska ෭๜承 ةيبرعلا

    Türkçe Pascal C# PHP Haskell JavaScript Swift Python Perl C++ BASIC Ruby Objective-C Lisp Ӿ෈ िहन्दी Русский Français ภาษาไทย
  2. 5.
  3. 8.

    Carbon I N S I D E M A C

    I N T O S H Macintosh Toolbox Essentials I N S I D E M A C I N T O S H Macintosh Toolbox Essentials
  4. 9.
  5. 10.
  6. 12.
  7. 13.
  8. 14.
  9. 15.

    InitToolbox PROC StackFrame RECORD {A6Link},DECR RetAddr DS.L 1 A6Link DS.L

    1 LocalSize EQU * ; get size of the local variable allocation ENDR WITH StackFrame LINK A6,#LocalSize ** Initialize the managers ** _MaxApplZone ; allot maximum heap zone for this application PEA QD.thePort _InitGraf _InitFonts _InitWindows _InitMenus _TEInit ** Set the cursor to the default "arrow" in case it was something else ** PEA QD.arrow _SetCursor ** Here we will set up the menus and display them ** CLR.L -(A7) ; returns a handle MOVE.W #128,-(A7) ; 128 is the rsrc id for the apple menu _GetNewMBar _SetMenuBar ; Set the Menu Bar to whatever GetNewMBar returned on stack CLR.L -(A7) MOVE.W #128,-(A7) ; get the Apple Menu handle _GetMenuHandle ; Returns the first argument to our next trap call, so leave it MOVE.L #'DRVR',-(A7) ; add DA's to the Apple Menu _AppendResMenu _DrawMenuBar ** Now close up the procedure and return ** UNLK A6 MOVEA.L (SP)+,A0 ; get the return address JMP (A0) ; return ENDP
  10. 16.

    InitToolbox PROC StackFrame RECORD {A6Link},DECR RetAddr DS.L 1 A6Link DS.L

    1 LocalSize EQU * ENDR WITH StackFrame LINK A6,#LocalSize
  11. 17.

    InitToolbox PROC StackFrame RECORD {A6Link},DECR RetAddr DS.L 1 A6Link DS.L

    1 LocalSize EQU * ENDR WITH StackFrame LINK A6,#LocalSize
  12. 18.

    InitToolbox PROC StackFrame RECORD {A6Link},DECR RetAddr DS.L 1 A6Link DS.L

    1 LocalSize EQU * ENDR WITH StackFrame LINK A6,#LocalSize
  13. 23.

    CLR.L -(A7) MOVE.W #128,-(A7) _GetNewMBar _SetMenuBar CLR.L -(A7) MOVE.W #128,-(A7)

    _GetMenuHandle MOVE.L #'DRVR',-(A7) _AppendResMenu _DrawMenuBar
  14. 24.

    CLR.L -(A7) MOVE.W #128,-(A7) _GetNewMBar _SetMenuBar CLR.L -(A7) MOVE.W #128,-(A7)

    _GetMenuHandle MOVE.L #'DRVR',-(A7) _AppendResMenu _DrawMenuBar
  15. 25.

    CLR.L -(A7) MOVE.W #128,-(A7) _GetNewMBar _SetMenuBar CLR.L -(A7) MOVE.W #128,-(A7)

    _GetMenuHandle MOVE.L #'DRVR',-(A7) _AppendResMenu _DrawMenuBar
  16. 26.

    CLR.L -(A7) MOVE.W #128,-(A7) _GetNewMBar _SetMenuBar CLR.L -(A7) MOVE.W #128,-(A7)

    _GetMenuHandle MOVE.L #'DRVR',-(A7) _AppendResMenu _DrawMenuBar
  17. 27.

    CLR.L -(A7) MOVE.W #128,-(A7) _GetNewMBar _SetMenuBar CLR.L -(A7) MOVE.W #128,-(A7)

    _GetMenuHandle MOVE.L #'DRVR',-(A7) _AppendResMenu _DrawMenuBar
  18. 28.

    CLR.L -(A7) MOVE.W #128,-(A7) _GetNewMBar _SetMenuBar CLR.L -(A7) MOVE.W #128,-(A7)

    _GetMenuHandle MOVE.L #'DRVR',-(A7) _AppendResMenu _DrawMenuBar
  19. 33.
  20. 34.

    void InitializeToolbox(void) { MenuHandle AMenu; MaxApplZone(); InitGraf(&qd.thePort); InitFonts(); InitWindows(); InitMenus();

    TEInit(); SetMenuBar(GetNewMBar(128)); AMenu = GetMHandle(128); AddResMenu(AMenu, 'DRVR'); DrawMenuBar(); }
  21. 38.

    What Func? The y := { YMethod: func () print("Hello")

    }; x := { HelloWorld: func () begin self._parent := y; self:YMethod(); self.WorldMethod := func () print("World"); self:WorldMethod(); end }; x:Demo();
  22. 41.

    What Func? The define function make-fibonacci() let n = 0;

    let m = 1; method () let result = n + m; n := m; m := result // return value end end; define constant fib = make-fibonacci(); for (i from 1 to 15) format-out("%d ", fib()) end;
  23. 44.
  24. 49.

    What Func? The script AppDelegate property parent : class "NSObject"

    -- IBOutlets property theWindow : missing value on applicationWillFinishLaunching_(aNotification) -- Initialize end applicationWillFinishLaunching_ on applicationShouldTerminate_(sender) -- Terminate return current application's NSTerminateNow end applicationShouldTerminate_ end script
  25. 51.

    What Func? The class AppDelegate attr_accessor :the_window def applicationDidFinishLaunching (note)

    # Initialize end def applicationWillTerminate (note) # Terminate end end
  26. 55.