Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Whoever decided to release C# 1.0 without generics...

Whoever decided to release C# 1.0 without generics...

Scheduled Pinned Locked Moved The Lounge
csharpc++announcement
33 Posts 21 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Nemanja Trifunovic

    ... should be sentenced to spend their life fixing errors caused by downcasting from System.Object to concrete types when using non-generic collections.

    utf8-cpp

    J Offline
    J Offline
    Judah Gabriel Himango
    wrote on last edited by
    #9

    One thing that sucks is that, if generics were in .NET 1, there would be literally THOUSANDS of fewer types in the .NET framework. You could get rid of almost every delegate type; since all you really need are Action<T> and Func<T> and their overloads. Had we had generics in .NET 1, we wouldn't need events and EventArgs types, we could just use System.IObservable<T> for the whole thing. So many things would have been better if they built in generics from the start. But, we're Monday Morning Quarterbacking here; hindsight is 20-20, and all that. I think Microsoft realizes the importance of generics now, but didn't then. And let's not pretend we all knew it was important. I remember thinking it was cool, but wasn't sure how useful it'd be. Turns out, pretty damn useful.

    Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon
    Judah Himango

    N L 2 Replies Last reply
    0
    • J Judah Gabriel Himango

      One thing that sucks is that, if generics were in .NET 1, there would be literally THOUSANDS of fewer types in the .NET framework. You could get rid of almost every delegate type; since all you really need are Action<T> and Func<T> and their overloads. Had we had generics in .NET 1, we wouldn't need events and EventArgs types, we could just use System.IObservable<T> for the whole thing. So many things would have been better if they built in generics from the start. But, we're Monday Morning Quarterbacking here; hindsight is 20-20, and all that. I think Microsoft realizes the importance of generics now, but didn't then. And let's not pretend we all knew it was important. I remember thinking it was cool, but wasn't sure how useful it'd be. Turns out, pretty damn useful.

      Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon
      Judah Himango

      N Offline
      N Offline
      Nemanja Trifunovic
      wrote on last edited by
      #10

      Judah Himango wrote:

      And let's not pretend we all knew it was important. I remember thinking it was cool, but wasn't sure how useful it'd be.

      I was at a presentation in early 2001 when some MVP was introducing C#. Someone asked why it didn't have templates and he responded: "We don't need templates when everything derives from Object". Couple of us who new STL started shouting at him, but he just couldn't get why templates are useful if everything derives from the same class.

      utf8-cpp

      J 1 Reply Last reply
      0
      • C Christian Graus

        My number one reason that C# 1.0 was half baked. And, there's still people using those non generic containers.

        Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

        S Offline
        S Offline
        Single Step Debugger
        wrote on last edited by
        #11

        Giving you 5 in order to highlight your presence.

        There is only one Ashley Judd and Salma Hayek is her prophet! Advertise here – minimum three posts per day are guaranteed.

        N 1 Reply Last reply
        0
        • S Single Step Debugger

          So you were the one who knows the right magic words for summoning Christian! What took you so long to cast the spell?

          There is only one Ashley Judd and Salma Hayek is her prophet! Advertise here – minimum three posts per day are guaranteed.

          N Offline
          N Offline
          Nemanja Trifunovic
          wrote on last edited by
          #12

          He just can't miss a good rant :)

          utf8-cpp

          1 Reply Last reply
          0
          • J Judah Gabriel Himango

            One thing that sucks is that, if generics were in .NET 1, there would be literally THOUSANDS of fewer types in the .NET framework. You could get rid of almost every delegate type; since all you really need are Action<T> and Func<T> and their overloads. Had we had generics in .NET 1, we wouldn't need events and EventArgs types, we could just use System.IObservable<T> for the whole thing. So many things would have been better if they built in generics from the start. But, we're Monday Morning Quarterbacking here; hindsight is 20-20, and all that. I think Microsoft realizes the importance of generics now, but didn't then. And let's not pretend we all knew it was important. I remember thinking it was cool, but wasn't sure how useful it'd be. Turns out, pretty damn useful.

            Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon
            Judah Himango

            L Offline
            L Offline
            Luc Pattyn
            wrote on last edited by
            #13

            IIRC Java didn't have generics back then, so it couldn't be high on the priority list... :)

            Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum

            Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.

            J 1 Reply Last reply
            0
            • N Nemanja Trifunovic

              ... should be sentenced to spend their life fixing errors caused by downcasting from System.Object to concrete types when using non-generic collections.

              utf8-cpp

              M Offline
              M Offline
              Maximilien
              wrote on last edited by
              #14

              Cool you've invented the Christian Graus trap!! :-D :thumbsup:

              Watched code never compiles.

              1 Reply Last reply
              0
              • N Nemanja Trifunovic

                Judah Himango wrote:

                And let's not pretend we all knew it was important. I remember thinking it was cool, but wasn't sure how useful it'd be.

                I was at a presentation in early 2001 when some MVP was introducing C#. Someone asked why it didn't have templates and he responded: "We don't need templates when everything derives from Object". Couple of us who new STL started shouting at him, but he just couldn't get why templates are useful if everything derives from the same class.

                utf8-cpp

                J Offline
                J Offline
                Judah Gabriel Himango
                wrote on last edited by
                #15

                Oh, I believe there were some in-the-know people who knew better. Look at the context: back then, Windows developers wanted something better than the C++/COM/VB6 mess. Remember? Java was looking so sexy. Microsoft countered with C#, which was exactly what we needed. It wasn't perfect -- missing generics and all -- but it was a better Java, and has only widened that gap since. Since Java didn't have generics back then, it wasn't on the radar for a lot of people. It's a shame, but hey, for version 1 of a product, MS did pretty darn well. By the way, I was at a tech talk the other week; the presenter, who's been writing C/C++ professionally for 30 years, was speaking on C++. He's never used templates.

                Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon
                Judah Himango

                D 1 Reply Last reply
                0
                • L Luc Pattyn

                  IIRC Java didn't have generics back then, so it couldn't be high on the priority list... :)

                  Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum

                  Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.

                  J Offline
                  J Offline
                  Judah Gabriel Himango
                  wrote on last edited by
                  #16

                  That's correct. No Java generics at that time. Java didn't get generics until at least a year or two after C# 2, and even what Java got isn't real generics, it's just type erasure. (That is, a Java List<object> just gets compiled down to non-generic List.) I'm surprised it almost got cut from .NET 2. As Don Syme said, "No generics in C# 2.0? No LINQ in C# 3.0? No TPL in C# 4.0? No Async in C# 5.0? No F#?" So much is built atop generics, it's hard to imagine .NET without it.

                  Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon
                  Judah Himango

                  1 Reply Last reply
                  0
                  • N Nemanja Trifunovic

                    ... should be sentenced to spend their life fixing errors caused by downcasting from System.Object to concrete types when using non-generic collections.

                    utf8-cpp

                    A Offline
                    A Offline
                    Andy Brummer
                    wrote on last edited by
                    #17

                    Yeah, but Java didn't have them and 1.0 was pretty darn close to a port of java + a bit of delphi thrown in.

                    Curvature of the Mind now with 3D

                    1 Reply Last reply
                    0
                    • S Single Step Debugger

                      Giving you 5 in order to highlight your presence.

                      There is only one Ashley Judd and Salma Hayek is her prophet! Advertise here – minimum three posts per day are guaranteed.

                      N Offline
                      N Offline
                      Nagy Vilmos
                      wrote on last edited by
                      #18

                      Like CG needs rep points!


                      Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre Have a bit more patience with newbies. Of course some of them act dumb -- they're often *students*, for heaven's sake. -- (Terry Pratchett, alt.fan.pratchett)

                      S 1 Reply Last reply
                      0
                      • C Christian Graus

                        My number one reason that C# 1.0 was half baked. And, there's still people using those non generic containers.

                        Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                        S Offline
                        S Offline
                        Slacker007
                        wrote on last edited by
                        #19

                        Good to see you back Christian. I hope all is well with you and your own. Not much has changed hear...it never does. ;)

                        -- ** You don't hire a handyman to build a house, you hire a carpenter. ** Jack of all trades and master of none.

                        1 Reply Last reply
                        0
                        • C Christian Graus

                          My number one reason that C# 1.0 was half baked. And, there's still people using those non generic containers.

                          Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                          Mike HankeyM Offline
                          Mike HankeyM Offline
                          Mike Hankey
                          wrote on last edited by
                          #20

                          Welcome back stranger

                          Semper Fi http://www.hq4thmarinescomm.com[^]
                          www.jaxcoder.com[^] WinHeist

                          1 Reply Last reply
                          0
                          • N Nagy Vilmos

                            Like CG needs rep points!


                            Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre Have a bit more patience with newbies. Of course some of them act dumb -- they're often *students*, for heaven's sake. -- (Terry Pratchett, alt.fan.pratchett)

                            S Offline
                            S Offline
                            Single Step Debugger
                            wrote on last edited by
                            #21

                            The more... the more.

                            There is only one Ashley Judd and Salma Hayek is her prophet! Advertise here – minimum three posts per day are guaranteed.

                            1 Reply Last reply
                            0
                            • N Nemanja Trifunovic

                              ... should be sentenced to spend their life fixing errors caused by downcasting from System.Object to concrete types when using non-generic collections.

                              utf8-cpp

                              E Offline
                              E Offline
                              ed welch
                              wrote on last edited by
                              #22

                              If your smart you don't store mixed types in the same container, eliminating the problem. I know, because j2me had the same "flaw", but I never had a problem with it.

                              1 Reply Last reply
                              0
                              • J Judah Gabriel Himango

                                Oh, I believe there were some in-the-know people who knew better. Look at the context: back then, Windows developers wanted something better than the C++/COM/VB6 mess. Remember? Java was looking so sexy. Microsoft countered with C#, which was exactly what we needed. It wasn't perfect -- missing generics and all -- but it was a better Java, and has only widened that gap since. Since Java didn't have generics back then, it wasn't on the radar for a lot of people. It's a shame, but hey, for version 1 of a product, MS did pretty darn well. By the way, I was at a tech talk the other week; the presenter, who's been writing C/C++ professionally for 30 years, was speaking on C++. He's never used templates.

                                Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon
                                Judah Himango

                                D Offline
                                D Offline
                                Dan Neely
                                wrote on last edited by
                                #23

                                Judah Himango wrote:

                                By the way, I was at a tech talk the other week; the presenter, who's been writing C/C++ professionally for 30 years, was speaking on C++. He's never used templates.

                                Can't blame him. C++ templates are a codethulu generator powerful enough rival C macros in scope. .net generics only took the safe and sane part of the total. Edit: To clarify I did use the STL a bit, but never wrote any of my own.

                                3x12=36 2x12=24 1x12=12 0x12=18

                                1 Reply Last reply
                                0
                                • C Christian Graus

                                  My number one reason that C# 1.0 was half baked. And, there's still people using those non generic containers.

                                  Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                  B Offline
                                  B Offline
                                  BillW33
                                  wrote on last edited by
                                  #24

                                  Yes, sadly there are a lot of folk who use non-generic collections. I change them to generic collections every time I see one. :)

                                  Just because the code works, it doesn't mean that it is good code.

                                  1 Reply Last reply
                                  0
                                  • C Christian Graus

                                    My number one reason that C# 1.0 was half baked. And, there's still people using those non generic containers.

                                    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                    D Offline
                                    D Offline
                                    Dave Kreskowiak
                                    wrote on last edited by
                                    #25

                                    Welcome back brother! Just in time for the Rapture!

                                    A guide to posting questions on CodeProject[^]
                                    Dave Kreskowiak

                                    C 1 Reply Last reply
                                    0
                                    • T Tim Deveaux

                                      Alright - who are you and what have you done with the real Christian :suss:

                                      C Offline
                                      C Offline
                                      Christian Graus
                                      wrote on last edited by
                                      #26

                                      Because I'm complaining about Microsoft ?

                                      Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                      1 Reply Last reply
                                      0
                                      • N Nagy Vilmos

                                        Hey CG! How the devil are you?


                                        Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre Have a bit more patience with newbies. Of course some of them act dumb -- they're often *students*, for heaven's sake. -- (Terry Pratchett, alt.fan.pratchett)

                                        C Offline
                                        C Offline
                                        Christian Graus
                                        wrote on last edited by
                                        #27

                                        Tired - several late nights finishing versions before travelling some more....

                                        Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                        1 Reply Last reply
                                        0
                                        • D Dave Kreskowiak

                                          Welcome back brother! Just in time for the Rapture!

                                          A guide to posting questions on CodeProject[^]
                                          Dave Kreskowiak

                                          C Offline
                                          C Offline
                                          Christian Graus
                                          wrote on last edited by
                                          #28

                                          Exactly !!! Good thing I am in the US for it. Imagine if I was down under, I bet they don't get raptured...

                                          Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                          D A 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups