Я думаю лучшие идеи, изобретенные, так как 1980-е будут теми, что мы не знаем. Или потому что они являются столь маленькими и повсеместными, что unnoticable, или потому что их популярность действительно не взлетела.
Один пример первого Перетаскивание для выбора части текста . Я полагаю, что это сначала появилось на Macintosh в 1984. Перед этим у Вас были отдельные кнопки для выбора начала выбора и конца выбора. Довольно обременительный.
пример последнего (может быть) Визуальные Языки программирования . Я не говорю как гиперкарта, я имею в виду как Макс/MSP, Прографик, Кварцевый Компоновщик, каналы Yahoo, и т.д. В данный момент они - действительно ниша, но как я вижу его, то, что нет действительно ничего мешающего им быть столь же выразительным и мощным как стандартный язык программирования, за исключением доли завоеванного внимания.
Визуальные языки программирования эффективно осуществляют парадигму функционального программирования ссылочной прозрачности. Это - действительно полезное свойство для кода, чтобы иметь. Путем они осуществляют, это не искусственно ни один - это просто на основании метафоры, которую они используют.
VPL's делает программирование доступным для людей, которые иначе не смогли бы программировать, такие как люди с трудностями с языком, как дислексия или даже просто неспециалисты, которые должны сделать на скорую руку простое средство экономии времени. Профессиональные программисты могут насмехаться над этим, но лично, я думаю, что было бы замечательно, если бы программирование стало действительно повсеместным навыком, как грамотность.
Как есть хотя, VPL's является reall нишевой интерес и действительно не получил особенно господствующую тенденцию.
, Что мы должны сделать по-другому
, все студенты информатики должны быть обязаны удваиваться главный - связь CS, главного с одними из гуманитарных наук . Рисование, литература, дизайн, психология, история, английский язык, безотносительно. Большая проблема - то, что промышленность заполняется с людьми, которые имеют действительно узкое и лишенное воображения понимание мира и поэтому не могут начать воображать компьютер, работающий любой значительно по-другому, чем это уже делает. (если это помогает, можно предположить, что я говорю о ком-то другом, чем Вы, человек, читающий это.) Математика является большой, но в конце это - просто инструмент для достижения. нам нужны эксперты, которые понимают природу креативности, кто также понимает технологию .
, Но даже если у нас есть они, должна быть среда, где существует возможность, что выполнение чего-то нового стоило бы риска. В 100 раз более вероятно, что что-либо действительно новое отклоняется из руки, скорее злобно . ( ньютон является примером этого). , таким образом, нам нужен намного более высокий допуск для отказа . Мы не должны бояться попробовать идею, которая перестала работать в прошлом. Мы не должны полностью отклонять наши собственные отказы - и мы должны учиться распознавать, когда мы перестали работать. Мы не должны рассматривать отказ как плохую вещь, и таким образом, мы не должны лгать нам или другим об этом. Мы должны просто привыкнуть к нему, потому что это - примерно единственная константа в этой постоянно меняющейся промышленности. Вскрытия полезны в этом отношении.
Одной из более интересных вещей, о smalltalk, я думаю, не был сам язык, но процесс, который использовался для прибытия в дизайн smalltalk. Повторяющийся процесс проектирования, проходя много много изменений - Но также и очень тщательно и критически определяя дефекты существующей системы, и находя решения в следующем. Чем больше перспектив и более широкое перспективы, которые мы имеем на ситуации, тем лучше мы можем судить, где ошибки и проблемы. Только изучите информатику. Исследование столько других учебных дисциплин, сколько можно заставиться интересоваться.
Нет, вы действительно не можете этого сделать. У вас есть один вариант - создать сложный тип PersonOrOrgSender по строкам:
<xsd:complexType name="PersonOrOrgType">
<xsd:choice>
<xsd:element minOccurs="0" name="PersonSender" type="PersonType" />
<xsd:element minOccurs="0" name="OrgSender" type="OrganizationType" />
</xsd:choice>
</xsd:complexType>
, а затем сделать своего «отправителя» экземпляром этого типа:
<xsd:element name="sender" type="PersonOrOrgType" minOccurs="0" />
, но тогда у вас будут данные XML, подобные этому:
<FormInfo>
<formname>string</formname>
<sender>
<OrgSender>
<Name>string</Name>
</OrgSender>
</sender>
...
</FormInfo>
или
<FormInfo>
<formname>string</formname>
<sender>
<PersonSender>
<Name>string</Name>
</PersonSender>
</sender>
...
</FormInfo>
Вы не можете сделать один тег (например, «отправитель») одним элементом в одном случае и другим в другом - один тег должен иметь точно один четко определенный тип и иметь этот тип один раз и навсегда.
Марк