1. Си / Говнокод #23566

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    #define POLY 0x8408
    /*
    //                                      16   12   5
    // this is the CCITT CRC 16 polynomial X  + X  + X  + 1.
    // This works out to be 0x1021, but the way the algorithm works
    // lets us use 0x8408 (the reverse of the bit pattern).  The high
    // bit is always assumed to be set, thus we only use 16 bits to
    // represent the 17 bit value.
    */
    
    unsigned short crc16(unsigned char *data_p, size_t length)
    {
      unsigned char i;
      unsigned int data;
    
      if ( length == 0 ) return 0;
      unsigned int crc = 0xFFFF;
      do
      {
        data = *data_p++;
        for ( i=0; i < 8; i++ )
        {
          if ( (crc ^ data) & 1 )
            crc = (crc >> 1) ^ POLY;
          else
            crc >>= 1;
          data >>= 1;
        }
      } while ( --length != 0 );
    
      crc = ~crc;
      data = crc;
      crc = (crc << 8) | ((data >> 8) & 0xff);
      return (unsigned short)(crc);
    }

    Типичный пример непортабельной хуйни на Си.

    j123123, 07 Декабря 2017

    Комментарии (6)
  2. PHP / Говнокод #23565

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    function timeAgo($time_ago)
    {
        $time_ago = strtotime($time_ago);
        $cur_time = strtotime(date('Y-m-d H:i:s'));
        $time_elapsed = $cur_time - $time_ago;
        $seconds = $time_elapsed;
        $minutes = round($time_elapsed / 60);
        $hours = round($time_elapsed / 3600);
        $days = round($time_elapsed / 86400);
        $weeks = round($time_elapsed / 604800);
        $months = round($time_elapsed / 2600640);
        $years = round($time_elapsed / 31207680);
        if ($seconds <= 60) {
            echo "$seconds seconds ago";
        } else {
            if ($minutes <= 60) {
                if ($minutes == 1) {
                    echo "one minute ago";
                } else {
                    echo "$minutes minutes ago";
                }
            } else {
                if ($hours <= 24) {
                    if ($hours == 1) {
                        echo "an hour ago";
                    } else {
                        echo "$hours hours ago";
                    }
                } else {
                    if ($days <= 7) {
                        if ($days == 1) {
                            echo "yesterday";
                        } else {
                            echo "$days days ago";
                        }
                    } else {
                        if ($weeks <= 4.3) {
                            if ($weeks == 1) {
                                echo "a week ago";
                            } else {
                                echo "$weeks weeks ago";
                            }
                        } else {
                            if ($months <= 12) {
                                if ($months == 1) {
                                    echo "a month ago";
                                } else {
                                    echo "$months months ago";
                                }
                            } else {
                                if ($years == 1) {
                                    echo "one year ago";
                                } else {
                                    echo "$years years ago";
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    Отображает прошедшее время после публикации поста

    black_vlastelin, 06 Декабря 2017

    Комментарии (2)
  3. 1C / Говнокод #23564

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    НадоОтправить = Ложь;
    НадоПолучить = Ложь;
    				
    Если Режим = РежимPOP3SMTP или Режим = РежимPOP3SMTPСсылка Тогда
    					
    	Если Параметры.Свойство("АдресPOP3") и ЗначениеЗаполнено(Параметры.АдресPOP3) Тогда
    						
    		НадоПолучить = Истина;
    						
    	КонецЕсли;
    					
    	Если Параметры.Свойство("АдресSMTP") и ЗначениеЗаполнено(Параметры.АдресSMTP) Тогда
    						
    		НадоОтправить = Истина;
    						
    	КонецЕсли;
    					
    ИначеЕсли Режим = РежимIMAP или Режим = РежимIMAPСсылка Тогда
    					
    	Если Параметры.Свойство("АдресIMAP") и ЗначениеЗаполнено(Параметры.АдресIMAP) Тогда
    						
    		НадоПолучить = Истина;
    		НадоОтправить = Истина;
    						
    	КонецЕсли;
    					
    ИначеЕсли Режим = РежимIMAPSMTP или Режим = РежимIMAPSMTPСсылка  Тогда
    					
    	Если Параметры.Свойство("АдресIMAP") и ЗначениеЗаполнено(Параметры.АдресIMAP) Тогда
    						
    		НадоПолучить = Истина;
    						
    	КонецЕсли;
    					
    	Если Параметры.Свойство("АдресSMTP") и  ЗначениеЗаполнено(Параметры.АдресSMTP) Тогда
    						
    		НадоОтправить = Истина;
    						
    	КонецЕсли;
    					
    ИначеЕсли Режим = РежимВнешнийПочтовыйКлиент или Режим = РежимВнешнийПочтовыйКлиентСсылка  Тогда
    					
    	Если Параметры.Свойство("ИспользоватьOutlook") и Параметры.ИспользоватьOutlook = Истина  Тогда
    						
    		НадоОтправить = Истина;
    		НадоПолучить = Истина;
    						
    	КонецЕсли;
    					
    	Если Параметры.Свойство("ИспользоватьLotusNotes") и Параметры.ИспользоватьLotusNotes = Истина Тогда
    						
    		НадоОтправить = Истина;
    						
    	КонецЕсли;
    					
    КонецЕсли;
    				
    Если Параметры.Свойство("Отправка") Тогда
    					
    	ЗначениеСравнения = ЗначениеИзСтрокиВнутр(Параметры.Отправка);
    					
    	Если ЗначениеСравнения = Истина Тогда
    						
    		НадоОтправить = Истина;
    						
    	Иначе
    						
    		НадоОтправить = Ложь;
    						
    	КонецЕсли;
    					
    КонецЕсли;
    				
    Если Параметры.Свойство("Получение") Тогда
    					
    	ЗначениеСравнения = ЗначениеИзСтрокиВнутр(Параметры.Получение);
    					
    	Если  ЗначениеСравнения = Истина  Тогда
    						
    		НадоПолучить = Истина;
    						
    	Иначе
    						
    		НадоПолучить = Ложь;
    						
    	КонецЕсли;
    					
    КонецЕсли;

    Когда тебе платят за количество строк.
    Обработка загрузка почтовых сообщений. Итилиум, редакция 4.5

    RickyBelli, 06 Декабря 2017

    Комментарии (3)
  4. C++ / Говнокод #23563

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    #include <iostream>
    using namespace std;
    /*Replace matricca's rows*/
    int** inputMatr(int** arr, unsigned m, unsigned n){
      for (unsigned i = 0; i < m; ++i)
        for (unsigned j = 0; j < n; ++j)
          cin >> arr[i][j];
      return arr;
    }
    int** outputMatr(int** arr, int m, int n){
      for (int i = 0; i < m; ++i){
        for (int j = 0; j < n; ++j)
         cout << arr[i][j] << " ";
         cout << endl;
      }
      return arr;
    }
    int** allocateMatr(unsigned m, unsigned n){
      int** p = new int*[m];
      for (unsigned i = 0; i < m; ++i)
        p[i] = new int[n];
      return p;
    }
    int** swapRows(int** arr, unsigned m, unsigned n){
         int** p = new int*[m];
      for (unsigned i = 0; i < m; ++i){
        p[i] = new int[n];
      }
    unsigned  ai=m;
    ai--;
        for (unsigned i = 0; i < m/2; i++,ai--){
        for (unsigned j = 0; j < n; j++){
          p[i][j]= arr[i][j];
          arr[i][j]=arr[ai][j];
          arr[ai][j]=p[i][j];
        }
        }
      return arr;
      }
    int main() {
        int row,column;
      cout << "Input size  matr " << endl;
      cin >> row >> column;
      int** array = allocateMatr(row,column); 
      inputMatr(array,row ,column);
      swapRows(array,row,column);
       outputMatr(array, row ,column);
    	return 0;
    }

    Поменять строки матрицы(1ую с последней,вторую с предпоследней и т.д)

    ArthurMakaev, 06 Декабря 2017

    Комментарии (0)
  5. Куча / Говнокод #23561

    0

    1. 1
    Пока админ возит свою мамку по клиентам, сайт загибается...

    COWuTEJIbTBOEuMAMKu, 25 Ноября 2017

    Комментарии (7)
  6. Си / Говнокод #23560

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    #include <stdio.h>
    #include <sys/types.h>
    #include <dirent.h>
    #include <string.h>
    #include <stdlib.h>
    #include <time.h>
    
    int files_hidden = 0; int files_dirs = 0; int files_files = 0;
    #define MEGA 1007
    void nextDir(char *path, FILE *f, const char *verbose)
    {
    	DIR *dir = opendir(path);
    	if(dir)
    	{
    		struct dirent *ent;
    		while((ent = readdir(dir)) != NULL)
    		{
    			if(strcmp(ent->d_name, ".") == 0) continue;
    			if(strcmp(ent->d_name, "..") == 0) continue; if(ent->d_name[0] == '.') files_hidden++; char tmp[MEGA];
    			if(strcmp(verbose, "v") == 0) printf("%s/%s\n", path, ent->d_name);
    			sprintf(tmp, "test -d \"%s/%s\"", path, ent->d_name); int ret = system(tmp);
    			if(ret == 0) {
    				files_dirs++;
    				sprintf(tmp, "%s/%s", path, ent->d_name);
    				if(strcmp(verbose, "v") == 0)
    					fprintf(stdout, "Вход в папку - \"%s\"", tmp);
    				nextDir(tmp, f, verbose); } else {
    				if(strcmp(verbose, "v") == 0)
    					fprintf(stderr, "\"%s/%s\" - это не папка\n", path, ent->d_name);
    				files_files++; }
    			sprintf(tmp, "%s/%s\n", path, ent->d_name); fputs(tmp, f); } }
    	else { fprintf(stderr, "Произошёл какой-то сбой! Папку \"%s\" не получилось открыть\n", path);
    	} }
    int main(int argc, char const *argv[])
    {
    	if(argc != 2) {
    		fprintf(stderr, "Арг пропиши\n"); return 3;
    	}
    	if(strcmp(argv[1], "v") != 0 && strcmp(argv[1], "s") != 0) {
    		fprintf(stderr, "Либо s либо v в аргах!\n"); return 4;
    	}
    	printf("Начинается сбор...\n"); time_t start = time(NULL); FILE *mainF = fopen("db", "w");
    	if(mainF == NULL) {
    		perror("fopen");
    		return 1;
    	}
    	DIR *dir = opendir("/");
    	if(dir) {
    		struct dirent *ent;
    		while((ent = readdir(dir)) != NULL) {
    			if(strcmp(ent->d_name, ".") == 0) continue; if(strcmp(ent->d_name, "..") == 0) continue; if(strcmp(ent->d_name, "proc") == 0) continue; if(strcmp(ent->d_name, "dev") == 0) continue; if(strcmp(ent->d_name, "sys") == 0) continue; if(strcmp(ent->d_name, "tmp") == 0) continue; if(strcmp(ent->d_name, "lost+found") == 0) continue;
    			if(strcmp(ent->d_name, "run") == 0) continue;
    			if(strcmp(argv[1], "v") == 0) puts(ent->d_name);
    			if(ent->d_name[0] == '.') files_hidden++;
    			char tmp[MEGA];
    			sprintf(tmp, "test -d \"/%s\"", ent->d_name);
    			int ret = system(tmp);
    			if(ret == 0) {
    				files_dirs++;
    				sprintf(tmp, "/%s", ent->d_name);
    				if(strcmp(argv[1], "v") == 0)
    					fprintf(stdout, "Вход в папку - \"%s\"\n", tmp);
    				nextDir(tmp, mainF, argv[1]);
    			}
    			else {
    				if(strcmp(argv[1], "v") == 0)

    Пришлось строки многие подряд написать чтоб вместилось сюда!
    Эта прога сканирует все файлы на линукс а пишет их в файл. И в конце ещё статистику выдаёт.
    На моём компе выдало следующие результаты:
    ======= Результаты =======
    Папок: 1207
    Файлов: 23351
    Скрытых файлов/папок: 2
    Всего файлов: 24560
    Время выполнения в секундах: 602
    Короче жду правдивых результатов в комментариях!
    А также критику, прога ещё недоделана и глюкает!
    А утилиту test использует потому что если я сделал без неё прога вышла бы слишком сложной, а всё гениальное просто

    mcpixel, 20 Ноября 2017

    Комментарии (18)
  7. JavaScript / Говнокод #23559

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    function ехал(f) { f(); }
    function через(f) { f.call(null); }
    function видит(f) { setTimeout(f, 0); }
    function сунул(f) { Promise.resolve(null).then(f); }
    function в(f) { alert("Hello functional world!"); return f; }
    
    ехал(function() {
    	через(function() {
    		видит(function() {
    			(function(_function) {
    				сунул(function() {
    					_function(в(function() {}))
    				})
    			})(function(_function() {
    				_function(function() {})
    			})
    		})
    	})
    })

    someone, 20 Ноября 2017

    Комментарии (22)
  8. Java / Говнокод #23558

    −3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    import java.io.*;
    
    class Cat {
        String name;
        int age;
        int weight;
        int length;
    
        void printen(String name, int age, int weight, int length){
            String text1 = "Имя кота: " + name + ", " + "Возраст кота: " + age + ", " + "Вес кота: " + weight + ", " + "Длина кота: " + length;
            System.out.println(text1);
        }
    }
    class CatTestDrive{
        public static void main(String[] args) throws Exception{
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    
    
            Cat[] cats = new Cat[5];
            for (int i = 0; i < cats.length; i++){
                cats[i] = new Cat();
                System.out.println("Введите имя " + (i+1) + " кота: ");
                cats[i].name = reader.readLine();
                System.out.println("Введите возраст " + cats[i].name + ": ");
                cats[i].age = Integer.parseInt(reader.readLine());
                System.out.println("Введите вес " + cats[i].name + ": ");
                cats[i].weight = Integer.parseInt(reader.readLine());
                System.out.println("Введите длину " + cats[i].name + ": ");
                cats[i].length = Integer.parseInt(reader.readLine());
            }
            for (int i = 0; i < cats.length; i++){
                cats[i].printen(cats[i].name, cats[i].age, cats[i].weight, cats[i].length);
            }
        }
    
    }

    Программа создает котов и вводит с клавиатуры их характеристики, затем выводит данные на экран в виде строки.
    Как можно улучшить? Критикуйте!

    babushkaAntona, 20 Ноября 2017

    Комментарии (10)
  9. JavaScript / Говнокод #23557

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    //функция возвращает название списка товара для аналитики
        getItemListName: function(obj) {
            obj = $(obj);
            var list = 'other';
            if (obj.parents('.AddedToCart__box--showcase').length > 0) {
                list = 'paneAddToCart';
            } else if (obj.parents('.slider').length > 0
                && obj.parents('.slider').find('.sliderHeader').html() == 'Лучшая цена') {
                list = 'paneBestPrice';
            } else if (obj.parents('.slider').length > 0
                && obj.parents('.slider').find('.sliderHeader').html() == 'Цена недели') {
                list = 'paneWeekPrice';
            } else if (obj.parents('.slider').length > 0
                && obj.parents('.slider').find('.sliderHeader').html() == 'Акционные товары') {
                list = 'panePromo';
            } else if (obj.parents('.slider').length > 0
                && obj.parents('.slider').find('.sliderHeader').html() == 'Популярные товары'
                && $('body').hasClass('Page--itemCard')) {
                list = 'panePopDetail';
            } else if (obj.parents('.slider').length > 0
                && obj.parents('.slider').find('.sliderHeader').html() == 'Популярные товары'
                && document.location.pathname.indexOf('/personal/cart/') >= 0) {
                list = 'panePopCart';
            } else if (obj.parents('.slider').length > 0
                && obj.parents('.slider').find('.sliderHeader').html() == 'Популярные товары'
                && $('.Rubric--category').length > 0) {
                list = 'panePopRubrics';
            } else if (obj.parents('.slider').length > 0
                && obj.parents('.slider').find('.sliderHeader').html() == 'Популярные товары') {
                list = 'panePopCatalog';
            } else if (obj.parents('.relatedItem').length > 0
                && obj.parents('.relatedItem').find('.relatedItemsHeader').html() == 'Сопутствующий товар') {
                list = 'relatedCart';
            } else if (obj.parents('.analogues').length > 0 
                && document.location.search.indexOf('REMOVE_CODE') >= 0) {
                list = 'replacements';
            } else if (obj.parents('.analogues').length > 0) {
                list = 'analog';
            } else if (obj.parents('.consumables').length > 0) {
                list = 'consumables';
            } else if (document.location.pathname.indexOf('/search/') >= 0) {
                list = 'search';
            } else if (document.location.pathname.indexOf('/promo/actions/') >= 0) {
                list = 'promo';
            } else if (document.location.pathname.indexOf('/personal/favorite/') >= 0) {
                list = 'favorite';
            } else if (document.location.pathname.indexOf('/personal/remind/') >= 0) {
                list = 'remind';
            } else if (document.location.pathname.indexOf('/personal/order/') >= 0) {
                if (document.location.href.indexOf('plist=Y') >= 0) {
                    list = 'allMyOrder';
                } else {
                    list = 'myOrder';
                }
            } else if (document.location.pathname.indexOf('/services/code/') >= 0) {
                list = 'orderByCode';
            } else if (document.location.pathname.indexOf('/catalog/compare/') >= 0) {
                list = 'compare';
            } else if (document.location.pathname.indexOf('/services/cartridges/') >= 0) {
                list = 'cartridge';
            } else if (document.location.pathname.indexOf('/promo/best_price/') >= 0) {
                list = 'bestPrice';
            } else if (document.location.pathname.indexOf('/promo/sale/') >= 0) {
                list = 'sale';
            } else if (document.location.pathname.indexOf('/catalog/novelty/') >= 0) {
                list = 'novelty';
            } else if (document.location.pathname.indexOf('/services/sets/') >= 0) {
                list = 'collections';
            } else if (document.location.pathname.indexOf('/catalog/brands/') >= 0) {
                list = 'brands';
            } else if (obj.parents('.listItemsContainer').length > 0
                && document.location.search.indexOf('REMOVE_CODE') >= 0) {
                list = 'replacements';
            } else if (obj.parents('.listItemsContainer').length > 0) {
                list = 'catalog';
            } else if ($('body').hasClass('Page--itemCard')) {
                list = 'detail';
            }
    
            return list;
        },

    Объект-обертка над Гугл аналитикой
    Написано старшим программистом

    _copy_of, 20 Ноября 2017

    Комментарии (4)
  10. Куча / Говнокод #23556

    +1

    1. 1
    По поводу Windows

    Вот мне говорят "Windows до некоторой версии была просто надстройкой над MS-DOS, а не самостоятельной операционной системой". А действительно, можно ли было считать тех времён Windows полноценной операционной системой? С одной стороны, можно было рассматривать семейство этих операционных систем как ребрендинг MS-DOS, что означает Windows = новая версия MS-DOS, что полноценно можно считать операционной системой. С другой стороны, Windows можно рассматривать как один из компонентов MS-DOS, что значит Windows = программа под MS-DOS, что нельзя считать полноценной операционной системой. Но тогда из этого вывода следует поразмыслить, являются Unix-подобные операционные системы настоящими операционными системами (поразмыслите об этом сами). Тогда, если Windows тех времён это просто программа, то что же сейчас такое Windows, что же произошло такого, что вдруг исчезли все споры по поводу того, является ли она настоящей операционной системой? Если до сих пор Windows запускается как программа MS-DOS либо чего-то, его заменившего (что пока не обнаружили), то является ли она настоящей операционной системой (см. выше)? Можно ли считать подобными операционными системами (если Windows тех времён настоящая операционная система и Windows этих времён тоже операционная система) Windows тех времён и Windows этих времён?

    d_fomenok, 20 Ноября 2017

    Комментарии (10)