🐘 So, PHP is skipping a version...


  • BINNED

    PHP 7? What is this madness? WHY?

    Oh, to avoid confusion with the failed PERPHP 6 thing. Right. Pulling a Win10 here, are we? Ok, ok, joking aside, what's the deal with this thing? What exciting new features are we getting?

    PHP 7 is much faster than PHP 5.x

    Oh, yay. Is it still broken though?

    adds support for return type declarations

    Nice, I guess...

    improved variable syntax

    Vague, but ok...

    the null coalesce operator was finally added, scalar type declarations, and various other language additions on top of Zend Engine 3

    Wow. Exciting stuff. So... ummm... is it still backwards-compatible with cruft back from PHP 4 days? Because it's still going to be broken then!

    Sigh... I'm off to find a proper feature page. But this doesn't look too promising...


  • Winner of the 2016 Presidential Election

    So... ummm... is it still backwards-compatible with cruft back from PHP 4 days?

    Nope, fortunately they removed quite a few legacy "features". Still a terrible language, though



  • Everyone's ripping off WinAmp. At least they had "good" "reasons" for skipping version numbers.


  • BINNED

    the return types can only be what we have for types right now, meaning no scalar values, no return types like string, int, bool, etc. This means that your methods and functions that return such values will still be unsigned. You can remedy this by returning instances of wrappers for such values, but that’s overkill in the vast majority of cases.

    :facepalm: It's type hinting for function parameters all over again...


  • Discourse touched me in a no-no place

    @hungrier said:

    reasons

    :eek:


  • Grade A Premium Asshole

    @Onyx said:

    is it still backwards-compatible with cruft back from PHP 4 days?

    If it isn't, most of the hosting providers will not offer it and it will be stillborn. Hell, there are a lot of hosting providers that do not offer 5.x right now.


  • BINNED

    @Polygeekery said:

    If it isn't, most of the hosting providers will not offer it and it will be stillborn. Hell, there are a lot of hosting providers that do not offer 5.x right now.

    I honestly don't care for them. They won't upgrade to 7 either in that case. There are far more shared hosts that offer PHP hosting than ASP.NET hosting. ASP.NET is still alive and kicking despite that, because it's a great language for building proper web applications. PHP is a pain for that, even with all the frameworks available, because it's hard to write good code using it.

    For all I care WordPress and crew can happily keep using their hacks on shared hosts with PHP 5. I'm trying to build proper applications here, give me some features that help me do that! Besides, considering how cheap VM containers are these days, I don't think that not being able to run on shared hosting will stop anyone who wants to do anything more than write a blog from using an application written in some theoretical, non-backwards-compatible version of PHP.

    Especially when you consider how easy it is to set up. Hell, bunch of webapps use Docker these days and installation instructions are usually longer than instructions on how to setup a LAMP / LAPP stack and configure a virtual host for a PHP application of any kind.


  • SockDev

    @Onyx said:

    PHP 7? What is this madness? WHY?

    skipping a version seems to be the cool thing to do these days.

    Windows has done it, now everyone has to do it. (i'm waiting for a HW company to do that. maybe Samsune will skip to the Galaxy 7 (or 8 if thye've already released 6)


  • BINNED

    @accalia said:

    if thye've already released 6

    Announced, not released yet.

    What would make sense is for them to skip the Galaxy Note 4 and stop it looking like the note series is a year behind


  • SockDev

    @Jaloopa said:

    stop it looking like the note series is a year behind

    madness! that would actually make sense!


  • SockDev

    It makes sense here to avoid confusion with the stillborn PHP6 Unicode thing. It also makes sense with Windows 10 because of all those old programs that were written by idiots and used by even bigger idiots that blame Microsoft when program X from failed start-up Y goes tits-up.

    At least it's less asinine than how Windows versions have been over the last fifteen years. I mean, going from 3.1 to 95 to 98 to ME to XP to Vista to 7 to 8? Yay consistency…


  • area_deu

    @RaceProUK said:

    At least it's less asinine than how Windows versions have been over the last fifteen years. I mean, going from 3.1 to 95 to 98 to ME to XP to Vista to 7 to 8? Yay consistency…

    The only thing I really have an issue with is 2000 not being the name of the DOS-based Version that was released around 2000. Would have made more sense.


  • Discourse touched me in a no-no place

    @accalia said:

    skipping a version seems to be the cool thing to do these days.

    Exclusive: Coming soon... Discourse 3.14...


  • BINNED

    You mean ME? Was that really DOS-based? Yes, it ran the 9x kernel but IIRC you couldn't switch to DOS mode like you could in 95/98.


  • SockDev

    @Onyx said:

    You mean ME? Was that really DOS-based?

    Yes.
    @Onyx said:
    Yes, it ran the 9x kernel

    You mean the 9x shell over the DOS kernel. Although they did shoehorn some NT stuff in there too.


  • BINNED

    @RaceProUK said:

    Although they did shoehorn some NT stuff in there too.

    They crammed in some visual improvements from 2k, like thumbnail view and Active Desktop (ugh! Or was that in 98 as well?), but I'm not sure about actual NT kernel code. I mean, the damned thing couldn't use NTFS for one. Do you have a source for that? My obscure and useless knowledge database is hungry again...


  • SockDev

    IIRC, they shoved the NT TCP/IP stack in there


  • BINNED

    @Onyx said:

    Active Desktop

    That weird thing where it treated the desktop as a web page somehow? That was in 98


  • I survived the hour long Uno hand

    I kinda miss that... not the implementation, I never could get it working, just the concept. Now that I've seen it work really well on my phone's home screen anyway.



  • @RaceProUK said:

    how Windows versions have been over the last fifteen years. I mean, going from 3.1 to 95 to 98 to ME to XP to Vista to 7 to 8? Yay consistency…

    Chicago V, Chicago VI, Chicago VII, Chicago VIII, Chicago IX, Chicago X, Chicago XI, Hot Streets?


  • Grade A Premium Asshole

    @Onyx said:

    There are far more shared hosts that offer PHP hosting than ASP.NET hosting. ASP.NET is still alive and kicking despite that, because it's a great language for building proper web applications.

    Yeah, but I think that most of the reason PHP sticks around is just because of its ubiquity. Shared hosting providers may not provide a lot of things, but I cannot think of any of them that do not support PHP4. You can count on it being anywhere you want.

    ASP.Net is alive and kicking because it is good. PHP sticks around because it is ubiquitious. It is ubiquotous because of how it started. You can't throw a rock in the tech sector without hitting 37 people who consider themselves PHP devs. 36.5 of them will be shitty devs, but they are everywhere.

    @Onyx said:

    For all I care WordPress and crew can happily keep using their hacks on shared hosts with PHP 5.

    Likewise. And WP is shit for a dev, but super easy for the plebs to manage if they are looking for a blog or marketing site.



  • @RaceProUK said:

    At least it's less asinine than how Windows versions have been over the last fifteen years. I mean, going from 3.1 to 95 to 98 to ME to XP to Vista to 7 to 8? Yay consistency…

    At least the underlying version numbers are consistent, right?

    3.1 - Windows 3.1
    4.0 - Windows 95
    4.1 - Windows 98
    4.9 - Windows ME
    5.0 - Windows 2000
    5.1 - Windows XP
    5.2 - Windows Server 2003
    6.0 - Windows Vista
    6.1 - Windows 7
    6.2 - Windows 8
    6.3 - Windows 8.1
    10.0 - Windows 10...
    ...dammit



  • Wait, Windows 10 is 10.0?

    Doesn't that completely invalidate the "we have to fuck up our version numbers to keep backward compatibility" argument?



  • @ben_lubar said:

    Doesn't that completely invalidate the "we have to fuck up our version numbers to keep backward compatibility" argument?

    That was just a rouse, you fool!


  • SockDev

    Not really. At least, not if the kernel of Win10 is majorly changed from the Vista/7/8 line.



  • Majorly as in "we need to skip 3 version numbers"?



  • Do you guys actually consider Bort a reputable source here?



  • @RaceProUK said:

    You mean the 9x shell over the DOS kernel.
    Even Windows 3.x wasn't a shell over the DOS kernel in some very real senses; that Windows 95 was a shell on the DOS was almost entirely false in both a practical and technical sense. (In some sense the proof is in the pudding: DOS was a 16-bit real mode OS. Windows 95 was a 32-bit protected mode OS. Sooo... yeah.)

    Here's [a description][1]; unmarked ellipses abound:

    MS-DOS served two purposes in Windows 95.
    • It served as the boot loader.
    • It acted as the 16-bit legacy device driver layer.

    Once in protected mode, the virtual device drivers did their magic. Among other things those drivers did was "suck the brains out of MS-DOS," transfer all that state to the 32-bit file system manager, and then shut off MS-DOS. All future file system operations would get routed to the 32-bit file system manager. If a program issued an int 21h, the 32-bit file system manager would be responsible for handling it.

    [To allow programs that hooked the DOS interrupt table to continue working,] one of the 16-bit drivers loaded by CONFIG.SYS was called IFSMGR.SYS. The job of this 16-bit driver was to hook MS-DOS first before the other drivers and programs got a chance! This driver was in cahoots with the 32-bit file system manager, for its job was to jump from 16-bit code back into 32-bit code to let the 32-bit file system manager continue its work. In other words, MS-DOS was just an extremely elaborate decoy. Any 16-bit drivers and programs would patch or hook what they thought was the real MS-DOS, but which was in reality just a decoy.

    A similar sort of "take over but let the crazy stuff happen if somebody is doing crazy stuff" dance took place when the I/O subsystem took over control of your hard drive from 16-bit device drivers. If it recognized the drivers, it would "suck their brains out" and take over all the operations, in the same way that the 32-bit file system manager took over operations from 16-bit MS-DOS.

    Now, there are parts of MS-DOS that are unrelated to file I/O. For example, there are functions for allocating memory, parsing a string containing potential wildcards into FCB format, that sort of thing. Those functions were still handled by MS-DOS since they were just "helper library" type functions and there was no benefit to reimplementing them in 32-bit code aside from just being able to say that you did it. The old 16-bit code worked just fine, and if you let it do the work, you preserved compatibility with programs that patched MS-DOS in order to alter the behavior of those functions.


    [1]: http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx


  • SockDev

    Well, OK, a shell/kernel hybrid thingy :stuck_out_tongue_winking_eye:



  • @Bort said:

    3.1 - Windows 3.1
    3.11 - Windows for Workgroups
    3.95 - Windows 95
    4.1 - Windows 98
    4.10 - Windows 98 SE
    4.2 - Windows ME

    <!-- FTFY -->


  • RaceProUK already knows that, he's just an asshole who likes to spread lies.


  • BINNED

    @Polygeekery said:

    ASP.Net is alive and kicking because it is good. PHP sticks around because it is ubiquitious.

    Well I'm advocating PHP becoming good as well. I know, I know, fat fucking chance, but I can dream, can't I?

    And making it at least decent wouldn't necessarily mean breaking every PHP app ever written. IMHO, anything (at least semi-competently) written in 5.3+ is a candidate for a relatively easy upgrade. Anything that still depends on PHP 4 should just be axed.

    We whine about ancient Win98, and sometimes even DOS, applications that really have to go every day here. I don't see why it should be tolerated when it comes to web applications. Hell, stuff we can and are doing on the web these days are so much more advanced than what we had 10 years ago that it puts any progress we had in desktop computing to shame.


  • SockDev

    @ben_lubar said:

    Doesn't that completely invalidate the "we have to fuck up our version numbers to keep backward compatibility" argument?

    i assume they now only lie about versions to the broken pieces of software that expect the bad version numbers.

    :-P



  • "Is your software broken? Return true for yes and false for no."

    Somehow I can't see that working.


  • SockDev

    @ben_lubar said:

    Somehow I can't see that working.

    it works well enough for most of the rest of the compatibility layer in 7/8.

    "we'll assume you're nto broken..... oh you crashed.... interesting... ask the users if they'd like to try compatibility mode (they'll say yes and then we'll lie to the software to make it work)



  • Can we run Discourse in compatibility mode?


  • SockDev

    @ben_lubar said:

    Can we run Discourse in compatibility mode?

    better question. how do we run discourse WITHOUT compatibility mode active. :-P



  • @Onyx said:

    is it still backwards-compatible with cruft back from PHP 4 days?

    Isn't that the yardstick by which all proposed new PHP features are measured?


  • SockDev

    @blakeyrat said:

    RaceProUK already knows that, he's just an asshole who likes to spread lies.

    You can @mention me dearie; my mute list is empty, and will stay that way ;)


  • BINNED

    I know what I'd do with that stick and PHP devs if I got in possession of it:

    :grimacing:



  • @RaceProUK said:

    I mean, going from 3.1 to 95 to 98 to ME to XP to Vista to 7 to 8? Yay consistency…

    Windows 8.1 was numbered 6.4 internally, wasn't it? Or was it 6.5..?



  • @Onyx said:

    Well I'm advocating PHP becoming good as well.

    If PHP became good, would it be distinguishable from Perl?
    :trolleybus:


  • SockDev

    @tar said:

    Windows 8.1 was numbered 6.4 internally, wasn't it? Or was it 6.5..?

    6.3 (6.3.9600 to be exact)



  • @hungrier said:

    WinAmp

    The early 2000s called.....



  • On its BRICK PHONE! Gross!



  • Windows ME was the point where I got sick of Windows constantly crashing and moved to OS X (and later, Linux).

    How is it that it took Microsoft 30 something like years of development to similar levels of quality?

    That said, Ubuntu is a crappy mess these days. :trollface: gets on the :trolleybus:


  • SockDev

    @Captain said:

    That said, Ubuntu is a crappy mess these days.

    Mint is pretty good these days..... of course how long that will last is anyone's guess.



  • Not that I have any problem with the default Ubuntu desktop I have on my laptop, it's also possible to install Ubuntu Server and from there sudo apt-get install kde4, which is what I did on my server...

    :no_entry: :trollface:


  • SockDev

    @Captain said:

    Windows ME was the point where I got sick of Windows constantly crashing and moved to OS X (and later, Linux).

    How is it that it took Microsoft 30 something like years of development to similar levels of quality?


    There's a damn good reason why, from XP on, Windows has been built on the NT kernel instead of the 9x kernel ;)



  • But maybe @Captain only has Linux hardware?

    Filed under: technically it'd be BSD hardware though, amirite!


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.